什么是移动构造函数采用constans rvalue的意义?

时间:2013-09-29 21:03:40

标签: c++11 rvalue move-constructor

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

何时想要将常量右值传递给move-constructor?

1 个答案:

答案 0 :(得分:1)

简短的回答是“从不”。

但是,您确实可以编写如下函数:

Foo const f();

现在Foo x = f();之类的内容会使用Foo const &&构造函数(如果可用)。但它也会愉快地绑定到Foo const &构造函数,并且因为两个引用都是常量,所以实际上不需要rvalue版本。

特别是,关于那个构造函数没有什么“移动”,因为正如我们所建立的那样,引用是不变的。