假设我们有一个类型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