关于Visual Studio对C++非静态成员变量初始化问题的官方说明

官方blog地址
以上是官方blog的解释

具体问题说明如下:
在Visual Studio 2013和Visual Studio 2015 Preview里,C++11的支持一直有一个小问题导致我们的项目在windows下无法正常编译。
class C {
std::vector<int> a {1,2,3};
}

在已知所有Visual Studio版本下都无法通过编译,按照官方说法是编译器存在一个bug导致最后把这种写法标识为了错误。
这种写法在gcc和clang都是允许的。
官方说在Visual Studio 2015最终版发布时会解决这个问题,目前临时解决方案是:
class C {
std::vector<int> a = std::vector<int>{1,2,3};
}

我想吐槽一下尼玛这么写还有毛意义……不过至少官方承诺2015正式版解决这个问题就好。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据