声明"const typedef enum"在C++中是否有效?

Gor*_*r H 0 c++ enums typedef const

我认为枚举是静态的,有什么意义const enum呢?

例如:

const typedef enum
{
    NORMAL_FUN = 1,
    GREAT_FUN = 2,
    TERRIBLE_FUN = 3,
} Annoying;
Run Code Online (Sandbox Code Playgroud)

我有一个旧的程序,我被迫与之合作(来自设备制造商),并且我一直在讨论定义的枚举const typedef enum.

现在,我习惯了C#,所以我并不完全理解所有正在进行的C++技巧,但这种情况似乎很简单.

从程序的编码看,似乎所有类型的变量Annoying都要随时随地改变.

它们并不意味着不变.长话短说,编译器不喜欢它.

这个样本是在2010年之前的某个时候写回来的,所以这可能是某种版本的差异,但是const typedef enum甚至意味着什么?

Som*_*ude 7

这使得type-alias Annoying不变,因此使用该类型别名声明的所有变量都是常量:

Annoying a = NORMAL_FUN;
a = GREAT_FUN;  // Failure, trying to change a constant variable
Run Code Online (Sandbox Code Playgroud)