template <typename FruitEnum>
struct FruitManager
{
/* a variable named group */
};
enum class FirstFruitEnum
{
apple_fruit,
banana_fruit,
};
enum class SecondFruitEnum
{
banana_fruit,
grape_fruit,
};
int main()
{
FruitManager<FirstFruitEnum> fruit_manager;
}
我正在尝试设置一些类似的东西
int index = static_cast<int>(fruit_manager.group::banana_fruit);
(相当于输出)
int index = static_cast<int>(FirstFruitEnum::banana_fruit);
对于上下文,可以使用任一枚举类创建结构。 如何最好地做到这一点?
编辑:我想知道结构体和 main 中的行需要做什么。
decltype
可用于获取 group
成员的类型,一旦获得类型,就可以访问枚举。
decltype(fruit_manager.group)
为您提供
group
的类型,然后
decltype(fruit_manager.group)::banana_fruit
是访问
group
具有的枚举类型的枚举成员的方式。