12.8/20 で左辺値を右辺値として扱う場合の条件として 12.8/19 の RVO の発動条件を引用しているけれど,あくまで RVO が発動する条件の記述を流用したいだけで,
2010-03-08 15:54:02まー, 12.8/20 は単に「return/throw のとこに指定された左辺値はまず右辺値として扱ってみますよ」と読めば良いだけでしょうにぇ.
2010-03-08 15:54:49それはそーと, throw されたオブジェクトの寿命や右・左の取り扱いをそれほどきちんと把握していない.
2010-03-08 16:02:51return値にmoveするのが無駄だっていうのが以前にどこかで議論があったはずなのに検索に引っかからない。さすがはTwitterだ・・・
2010-06-14 21:21:47RVO はどんな時でもキチンと働くことが保証されてるわけじゃないから move も悪くないと思うにゃー。 RT @melponn: return値にmoveするのが無駄だっていうのが以前にどこかで議論があったはずなのに検索に引っかからない。さすがはTwitterだ・・・
2010-06-14 21:23:20その議論はmoveされました RT @melponn: return値にmoveするのが無駄だっていうのが以前にどこかで議論があったはずなのに検索に引っかからない。さすがはTwitterだ・・・
2010-06-14 21:23:51@melponn 最近2chの0xスレでも話題になってましたねreturn時のmove。RVO適応されなければ勝手にmove-constructor呼んでくれる仕様だとか。流石0xたん。
2010-06-14 21:27:34呼んだ? RT @melponn: return値にmoveするのが無駄だっていうのが以前にどこかで議論があったはずなのに検索に引っかからない。さすがはTwitterだ・・・
2010-06-14 21:35:06@melponn 手元のN1377には、右辺値への暗黙のキャストがあるかもしれない、みたいに書いてありますねー。
2010-06-14 21:35:13GCCの実装では普通に値戻しするとNRVOでコンストラクタが消されるけれど、moveして返すとムーブコンストラクタが余計に呼ばれる [宮崎産を食べよう]
2010-06-14 21:37:11