C++ 无法将常量字符转换为字符串构造字符串
为什么这样做有效C++ 无法将常量字符转换为字符串构造字符串,c++,C++,为什么这样做有效 auto f = std::string(); f = "src.Id"; 但事实并非如此 std::string f(); f = "src.Id"; 因为 std::string f(); 声明一个函数f,该函数不接受任何参数并返回字符串。它经常被(错误地)称为最令人烦恼的解析。< /p>查找“C++中最令人烦恼的解析”。我希望人们不要把这个简单的案例称为最令人烦恼的解析。这是最烦人的解析。可以说,无论您目前遇到的是哪种烦人的解析,都是最烦人的解析。:)如果使用较新的
auto f = std::string();
f = "src.Id";
但事实并非如此
std::string f();
f = "src.Id";
因为
std::string f();
声明一个函数
f
,该函数不接受任何参数并返回字符串。它经常被(错误地)称为最令人烦恼的解析。< /p>查找“C++中最令人烦恼的解析”。我希望人们不要把这个简单的案例称为最令人烦恼的解析。这是最烦人的解析。可以说,无论您目前遇到的是哪种烦人的解析,都是最烦人的解析。:)如果使用较新的语法std::string f{}代码>,它不会考虑<代码> f>代码>返回一个函数的声明<代码> STD::String 。@约翰:也许你应该纠正Scott Meyers(谁发明了这个词)——看看他的评论“WIGWET W3-(;)/ /最令人烦恼的解析!声明一个函数!”仅仅因为维基百科只列出了一个更复杂的例子并不意味着更简单的例子也不在这个术语的涵盖范围之内。