【发布时间】:2017-03-31 00:39:08
【问题描述】:
我问了关于boost::assign::map_list_of 的相同问题before(没有得到回答),然后我想也许使用大括号初始化会有所帮助,但没有。
这很好用:
std::map<int, char> m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}};
但这不是:
std::map<int, char> m;
m = {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}};
Visual Studio 2013 给出错误error C2593: 'operator =' is ambiguous,可能是operator=(std::initalizer_list) 或operator=(std::map&&)。
是否有可能让第二个版本工作?例如,m 是成员变量的情况。
【问题讨论】:
-
所以问题是你不能升级到Visual C++ 2015,它编译得很好?
-
@ChristianHackl 感谢您提供的信息,但在我工作的地方,我们通常会跳过所有其他版本的 Visual Studio。 :(
标签: c++ c++11 visual-studio-2013 assignment-operator uniform-initialization