我们可以在函数内定义类/结构.我们还可以在函数内定义枚举和联合吗?
void fun() {
enum {BIG, MID, SMALL};
// other code.
}
Run Code Online (Sandbox Code Playgroud)
我可以使用gcc 4.8.2编译代码,但我不确定它是否合法.
Tej*_*dra 15
是的,在函数内定义枚举是完全可以的.您的代码描述了完全合法的匿名枚举声明.
结构和类也可以在函数内声明(也可以是匿名的).在函数内声明的类型(而不是在命名空间或类范围内)的唯一限制是它们不能用作模板参数.
more information on 列举
自C++ 11以来,关于模板参数的限制已经改变,有关模板参数的更多信息可以在链接模板参数上找到