为什么std :: string str = {}?

时间:2013-11-09 08:14:39

标签: c++ c++11

我在一些代码中看到了这一点,我尝试重新编译VC ++ 2013:

std::string str;
[...]
str = {}

VC ++ 2013抱怨:

error C2593: 'operator =' is ambiguous

所以我试图理解它的具体作用。

那么为什么要使用str = {}代替str = ""?有什么区别?

2 个答案:

答案 0 :(得分:3)

我认为这是MSVC中的一个错误。含义:它为您的initializer_list<char>变量指定空str。您可以通过使用显式创建来解决此问题:str = std::string{};它将保留原始含义并将与MSVC一起使用。我建议向MS connect提交错误报告。

答案 1 :(得分:1)

str = {""}

运作良好并保留括号分配的原始含义。