从非静态成员初始化静态数据成员

时间:2016-06-03 09:58:53

标签: 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。

1 个答案:

答案 0 :(得分:2)

这显然是VC ++中的一个错误,如19.00.23506,sizeof(Myclass::a)不起作用。这似乎已在版本19.00.23506(在线rextester)和19.00.23720.0(在线Microsoft)之间修复。您可以尝试报告bug或下载较新版本的IDE /编译器。

尽管如此,我还是会报告一个错误,因为不需要嵌套的名称说明符。