C++ 从非静态成员初始化静态数据成员
我正在尝试从非静态变量的sizeof初始化静态成员变量:C++ 从非静态成员初始化静态数据成员,c++,c++11,visual-studio-2015,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。这显然是VC++中的一个错误,如在19.00.23506中,sizeof(Myclass::a)不起作用。这似乎已在版本19.00.235
class Myclass
{
int a;
static const int b = sizeof(a);
};
这在c++11中应该是合法的,对吗?它给了我编译器错误C2327(“a不是类型名,不是静态的,也没有枚举数”)
编译器是Visual Studio 2015 Express。这显然是VC++中的一个错误,如在19.00.23506中,
sizeof(Myclass::a)
不起作用。这似乎已在版本19.00.23506(联机试用)和19.00.23720.0(联机试用)之间修复。您可以尝试报告或下载新版本的IDE/编译器
尽管如此,我还是会报告一个bug,因为嵌套的名称说明符不应该是必需的。
sizeof(Myclass::a)
应该可以解决您的问题。@Jarod42 Er.您尝试过吗?是您的朋友。虽然它在中运行,但看起来已经修复。您能推荐我一个可以在短时间内实现的解决方法吗?Visual Studio Express 2015是否有超过版本14.0.50616.0的更新?我无法使用社区版进行授权rea儿子们。