【发布时间】:2016-04-21 10:05:39
【问题描述】:
我们可以在函数内部定义class/struct。我们也可以在函数中定义enum和union吗?
void fun() {
enum {BIG, MID, SMALL};
// other code.
}
我可以用gcc 4.8.2编译代码,但我不确定它是否合法。
【问题讨论】:
我们可以在函数内部定义class/struct。我们也可以在函数中定义enum和union吗?
void fun() {
enum {BIG, MID, SMALL};
// other code.
}
我可以用gcc 4.8.2编译代码,但我不确定它是否合法。
【问题讨论】:
是的,在函数中定义枚举是完全可以的。您的代码描述了完全合法的匿名枚举声明。
结构和类可以在函数中声明 以及(也可能是匿名的)。 对在其中声明的类型的唯一限制 一个函数(而不是在命名空间或类范围内) 是它们不能用作模板参数。
more information onEnumeration
从 C++ 11 开始,模板参数的限制已经改变,更多关于模板参数的信息可以在链接Template Parameters找到
【讨论】: