C++0x 10
■ このスレッドは過去ログ倉庫に格納されています
0398デフォルトの名無しさん
2010/07/02(金) 13:52:39return文の式は、関数の戻り値の型に変換される。
これが大前提の挙動。
このとき、コピー、ムーブコンストラクターの呼び出しを省略してもよい
これが、RVO(Return Value Optimization)と呼ばれるもの。
このとき、コピーかムーブかのコンストラクターのオーバーロード解決のために、
式をrvalueとみなしてもよい。(つまり、ムーブコンストラクターを呼べる)
どんな式でもというわけにはいかんが、どうせreturn文が評価されるということは、
その関数のブロックスコープを抜けるということであって、ローカル変数の寿命は終わる。
もし、式がローカル変数のlvalueだとしたら、ムーブしたっていいだろ、どうせすぐ死ぬんだから。
■ このスレッドは過去ログ倉庫に格納されています