我的枚举带有一些值和将其转换为类型的结构。
enum class Types : uint8_t {
...
};
template<Types type>
struct enum_ {
...
}
我还有主模板类Action,这是一个类似lambda的结构,具有重载的operator(),具体取决于传递的类型
template<typename...>
struct Action;
template<typename T>
struct Action<T> { ... };
template<typename T, typename R>
struct Action<T, R> { ... };
问题在于某些模板参数可以是枚举(例如T = enum_<Types::type>
)
是否可以做这样的事情:
template<typename... Args>
using ActionType = Action<Args...>;
template<Types type, typename... Args>
using ActionType = Action<enum_<type>, Args...>;
因此,在这种情况下,T
是可选的枚举类型。我现在可以像这样ActionType<enum_<Types::type>, ...>
一样使用,但是我很感兴趣这个问题是否可以解决。