我想我从 TC++PL 中了解到“非常量引用应该由左值初始化”。
以下是我的问题
int f1(int &x)
{
return 1;
}
int f2()
{
return 1;
}
int f3(string &s)
{
return 1;
}
string f4()
{
return "1";
}
int main()
{
cout<<f1(f2())<<endl; // Error.
cout<<f3(f4())<<endl; // OK.
}
所以我不明白为什么 f3(f4()) 是正确的,而 f4() 的返回值显然不是左值。