我想我从TC++ PL中学习到 “一个非const引用应该用左值初始化”。非const引用的初始化
而下面是我的问题
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()的返回值是明显不是一个左值。
它不应该工作。你用什么编译器? – ForEveR 2013-04-24 11:03:17
不适合我,因为我期待。 – soon 2013-04-24 11:03:21
我编译VS2010中的代码。 – hwlts 2013-04-24 11:24:21