我知道Temporaries
不能绑定到非常量引用。
class X
{
int i;
};
X fun()
{
return X();
}
void func(X &x)
{
}
int main()
{
func(fun());
return 0;
}
对fun
的调用不是在生成临时的吗?为什么临时可以在这里链接到non-const reference
。我不明白为什么这个汇编这么好。
编辑:我正在使用VS2010。我不明白这怎么回事。
对
fun
的调用不是在产生临时的吗?
是的。
为什么在这里临时可以链接到非常量引用。
它不能。
我不明白为什么这个汇编这么好。
因为你的编译器有问题。
我正在使用VS2010。我不明白这怎么回事。
该编译器对该语言有许多非标准的"扩展"。这只是该编译器接受的不可靠代码的一个例子,但不是一致的。