【发布时间】:2011-12-31 01:41:17
【问题描述】:
static const 成员不能存在于本地类中的原因是什么?这似乎是一个相当愚蠢的限制。
例子:
void foo() {
struct bar {
int baz() { return 0; } // allowed
static const int qux = 0; // not allowed?!?
};
}
struct non_local_bar {
int baz() { return 0; } // allowed
static const int qux = 0; // allowed
};
引用标准 (9.8.4):
本地类不应有静态数据成员。
【问题讨论】:
-
@JosephH 这可能是重复的,虽然你链接的那个在问别的东西。
-
Iirc 规范对该规则有一个脚注。解释原因
-
如果像我这样的人因为编译器的错误提示而来到这里,并且不知道如何识别错误。 em...您也可以尝试验证您的头文件。我不小心在一个函数声明的末尾放了一个
{。 ... ...希望这可以帮助你:)))
标签: c++ static static-members local-class