1

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

class X
{
  int i;
};

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

}

int main()
{

 func(fun());
 return 0;
}

呼吁fun生产不是临时的吗?为什么临时可以挂在non-const reference这里。我无法理解为什么这个编译很好。

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

4

1 回答 1

2

呼吁fun生产不是临时的吗?

是的。

为什么可以在这里临时链接到非常量引用。

它不能。

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

因为你的编译器有问题。

我正在使用VS2010。我不明白这该怎么办。

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

于 2013-08-23T17:38:52.663 回答