ムーブコンストラクタがどういう動きをするのか調べるために下記のようなコードを書いてみた。 まずムーブコンストラクタなしの場合。 #include <iostream> #include <vector> using namespace std; struct Obj { Obj() { cout << "constructor" << endl; } Obj(const Obj& o) { cout << "copy constructor" << endl; } /* ムーブコンストラクタなしの場合 Obj(Obj&& o) { cout << "move constructor" << endl; } */ }; int main() { std::vector<Obj> v; cout << "1\n"; v.push_back(Obj()); cout << "2\n"; v.pu
![ムーブコンストラクタを作って push_back してみる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b536a58bb8ce30e0ce75071c5ffbb73896c356c0/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgzJUEwJUUzJTgzJUJDJUUzJTgzJTk2JUUzJTgyJUIzJUUzJTgzJUIzJUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgzJUE5JUUzJTgyJUFGJUUzJTgyJUJGJUUzJTgyJTkyJUU0JUJEJTlDJUUzJTgxJUEzJUUzJTgxJUE2JTIwcHVzaF9iYWNrJTIwJUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1mYzZkM2ExZjlkMjBlY2Q2YWRiZWIwNWE2OWU1OGJiZQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwX21la2kmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWYyZDBiZmViOWNkZWNlZDc2YWYxNThjYWZmN2E0N2Zm%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D2c2f73c2775351c8634e0244c549baa0)