匿名枚举类

小太郎*_*小太郎 16 c++ enums c++11

有可能编写一个匿名枚举类,然后比较它包含的内容吗?例如.

enum class { APPLE, BANANA } fruitType;
// ...
if (fruitType == fruitType::APPLE)
    // ...
Run Code Online (Sandbox Code Playgroud)

Bo *_*son 9

不,fruitType是一个变量(尽管名称中有Type).您不能使用变量名来访问有关其类型的内容.

我们的想法enum class是,除非使用类型名称作为前缀,否则这些值在定义之外是不可见的.如果类型没有名称,这将很难!

  • Gcc允许你这样做:`typedef decltype(fruitType)ft_t; if(fruitType == ft_t :: APPLE)` (3认同)
  • 将`if(fruitType == decltype((fruitType)):: APPLE)`工作? (2认同)