VS2010:Temporaries不能绑定到非const引用

时间:2013-08-23 17:31:12

标签: c++ temporary-objects

我开始知道Temporaries不能绑定到非const引用。

class X
{
  int i;
};

X fun()
{
 return X();
}
void func(X &x)
{

}

int main()
{

 func(fun());
 return 0;
}

是不是打电话给fun生产一个临时的?为什么临时可以链接到non-const reference。我无法理解为什么这个编译很好。

编辑: 我正在使用VS2010。我不明白这应该怎么回事。

1 个答案:

答案 0 :(得分:2)

  

是不是要求fun生成临时的?

  

为什么临时可以链接到非const引用。

它不能。

  

我无法理解为什么这个编译很好。

因为你的编译器有问题。

  

我正在使用VS2010。我不明白这应该怎么回事。

该编译器对该语言有许多非标准的“扩展”。这只是该编译器接受的狡猾代码的一个例子,但不是一致的。