移动构造对象时是否必须显式移动成员?

时间:2014-06-13 13:37:07

标签: c++ c++11 move-semantics rvalue-reference

假设我们有一个类型A,其成员可以理解移动语义,我们也希望为A实现移动语义;

struct A {
  ::std::vector<int> ints;
  A(A&&);
};

在实施A::A(A&&)时,我们是否必须明确::std::move ints成员,还是会自动将其作为::std::vector<int>&&传递?也就是说,这些会做同样的事情:

A(A&& a) : ints(a.ints) {}              // version 1
A(A&& a) : ints(::std::move(a.ints)) {} // version 2

0 个答案:

没有答案