在我的一个库中,我有一堆enum class
类型用于某些struct
/ class
和/或成员函数模板:
enum class Param
{
Undef,
P1,
P2,
P3,
P4
};
enum class Type
{
Undef,
T1,
T2,
T3,
T4
};
您明白了。我确保在每个 Undef
中手动插入一个enum
元素,我将其用作某些模板的默认设置:
template<Type t>
struct Container
{
template <Param p = Param::Undef>
void func() {};
}
由于我希望库中的所有所有 enum
个元素都具有一个Undef
元素,因此能够从编译器中请求该元素非常好。基本上,我希望能够遍历所有enum
并注入一个Undef
元素(如果不存在)。
我的问题是,c++20
中的元类是否可以实现?如果是,代码会是什么样子(例如,使用Herb Sutter's建议)?