やばい、何が正解なのかわからなくなってきた。
古いの持ちだして申し訳ないが、
ttp://d.hatena.ne.jp/faith_and_brave/20080304/1204628281
にある次の例、
class person {
int age;
string name;
public:
person(person&& other)
: age(std::move(other.age)), name(std::move(other.name)) {}
};

でも、
person p{50,"hage"};
cout << &p.name << endl;
person q(move(p));
cout << &q.name << endl;
としたときズレてて、仕事してなくない?