【发布时间】:2013-08-29 18:44:37
【问题描述】:
这个
class X
{
int x = 2;
string y {"smt"};
int tab[3] = {1,2,3}; // or tab[3] {1,2,3}
};
据我所知,在新的 C++ 11 标准中是可能的。但是,在 Visual Studio 2012 V3 或 2013 中都不允许这样做。第一个给出:
error C2864: 'A::a' : only static const integral data members can be initialized within a class
关于 ';' 的第二个和第三个错误和'{'。
这基本上意味着这些功能在 MS 编译器中仍然不可用吗?什么编译器实际上支持它?我在 Visual 中搜索了有关类内初始化的答案,但没有找到有关最新版本的任何具体信息。
提前致谢。
【问题讨论】:
-
是的,它还没有在 VS 中可用。 gcc 和 clang 支持它。
标签: c++ visual-studio-2012 c++11 visual-studio-2013