【发布时间】:2014-07-01 19:49:23
【问题描述】:
我希望下面的代码能够编译,但 Visual Studio 2013 Update 2 给了我一个错误,而 g++ 4.7 可以很好地编译它。
using std::vector;
using std::string;
struct Settings
{
vector<string> allowable = { "-t", "--type", "-v", "--verbosity" };
};
VS 2013 编译失败:
'std::vector<std::string,std::allocator<_Ty>>::vector': 没有重载函数需要 4 个参数
如果我按如下方式更改成员,那么它可以正常编译:
vector<string> allowable = vector<string> { "-t", "--type", "-v", "--verbosity" };
我查看了从 Bjarne 的 FAQ 链接的 proposal 并查看了 MSDN page 中有关 VS 2013 中已完成的 C++11 功能的内容,但我仍然感到困惑。它应该按原样编译,还是我错了,必须两次指定类型?
【问题讨论】:
-
initializer_list在 MSVC 2013 上被严重破坏了,事实上很多 C++11 的特性对于它们是否工作来说都是一个死机:(
标签: c++ visual-c++ c++11 visual-studio-2013 initializer-list