接受rvalue作为左值参考

时间:2014-03-03 11:53:18

标签: c++ visual-c++ gcc pass-by-reference rvalue

考虑以下简单程序

#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错了吗?

0 个答案:

没有答案