c++11の主要なtopicであるムーブセマンティクスは非常に多くの方が解説されいます。 しかし初学者が一つの記事で理解できるようにはなっていないのが現状です。 そこで以下に順番に読むとわかりやすいリンクを挙げていきます。 Return value optimization : Wikipedia 先に知っておく方が良い基礎知識。 C++11は関係ありません。 #include <iostream> struct C { C() {} C(const C&) { std::cout << "A copy was made.\n"; } }; C f() { return C(); } int main() { std::cout << "Hello World!\n"; C obj = f(); } (Wikipediaより転載)の挙動に自信が無い人は必読です。 とはいえ最適化は標準規格で
![std::moveまとめ(link集) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1e4096a37655dfac3d1bf669a5d1aedbaf4e03df/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-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9c3RkJTNBJTNBbW92ZSVFMyU4MSVCRSVFMyU4MSVBOCVFMyU4MiU4MSUyOGxpbmslRTklOUIlODYlMjkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWViZjBjMTRjMWYyYmE4MGMyNzE4ZWIwNzMyMmYwYTcx%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdGVybW9zaHR0JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz05NTU4ZmQzY2QyN2NmYmFmNzQyZjY5NjA3YmI2NzlkMA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D86ed63ccd57bc210c8cce0c0526f6cf8)