考虑以下简单程序
#include <string>
using namespace std;
void fun(string &s)
{
}
int main()
{
string str = "Hello";
fun(str + " world");
return 0;
}
GCC(版本4.7)在fun的调用中输出错误,指出无法使用rvalue初始化非const引用。
Miscrosoft Visual C ++ 2013编译代码而不抱怨(我假设生成对临时对象的引用)。
我认为GCC的行为是正确的,而MSVC错了吗?