2013年3月15日金曜日

C++ move semantics

メモ
  1. tmpは暗黙的に右辺値と見なされる。
  2. そして、返り値最適化(Return-Value-Optimization)を経て返される。
  3. コンパイラがRVOを作動させない場合、返り値の型が持つmove constructorを経て返される。
  4. コンパイラがRVOを作動させず、かつ、返り値の型がmove constructorを持たない場合、copy constructorを経て返される。
よって、以下のコードに無駄はない。 以下のように書いた場合、std::moveの記述がRVOを抑制してしまう。 参照先

0 件のコメント:

コメントを投稿