1

根据http://en.cppreference.com/w/cpp/language/move_constructor“一个类可以有多个移动构造函数,例如两者T::T(const T&&)T::T(T&&)

什么时候想要将一个常量右值传递给移动构造函数?

4

1 回答 1

1

简短的回答是“从不”。

但是,您确实可以编写这样的函数:

Foo const f();

现在,如果可用的话,它Foo x = f();会使用Foo const &&构造函数。但它也会Foo const &很高兴地绑定到构造函数,并且由于两个引用都是常量,因此实际上不需要右值版本。

特别是,该构造函数有一些“移动”,因为正如我们所建立的,引用是恒定的。

于 2013-09-29T21:05:44.613 回答