我在一些代码中看到了这一点,我尝试重新编译VC ++ 2013:
std::string str;
[...]
str = {}
VC ++ 2013抱怨:
error C2593: 'operator =' is ambiguous
所以我试图理解它的具体作用。
那么为什么要使用str = {}
代替str = ""
?有什么区别?
答案 0 :(得分:3)
我认为这是MSVC中的一个错误。含义:它为您的initializer_list<char>
变量指定空str
。您可以通过使用显式创建来解决此问题:str = std::string{};
它将保留原始含义并将与MSVC一起使用。我建议向MS connect提交错误报告。
答案 1 :(得分:1)
str = {""}
运作良好并保留括号分配的原始含义。