标签: c++ c++11 visual-studio-2015
我试图从非静态的sizeof初始化静态成员变量:
class Myclass { int a; static const int b = sizeof(a); };
这应该是合法的c ++ 11,对吧?它给了我编译器错误C2327(" a没有类型名称不是静态的,也没有枚举器)。
编译器是Visual Studio 2015 Express。
答案 0 :(得分:2)
这显然是VC ++中的一个错误,如19.00.23506,sizeof(Myclass::a)不起作用。这似乎已在版本19.00.23506(在线rextester)和19.00.23720.0(在线Microsoft)之间修复。您可以尝试报告bug或下载较新版本的IDE /编译器。
sizeof(Myclass::a)
尽管如此,我还是会报告一个错误,因为不需要嵌套的名称说明符。