VC2010でC++11を試してみる-右辺値参照

C++がすごく進化しているみたいなので少し調べてみた。

・右辺値参照 T&&

まず右辺値とは代入できない式のこと。

この例では、下2つが右辺値に代入しているのでエラーになる。
いままでのC++の参照には左辺値右辺値の区別がなかった。右辺値の定義をもう少し進めると&や*でアドレスが取得できない式であることがわかる。そしてC++の参照には右辺値を設定することはできない。

以下のコードを考える。

data1=data2では本当にコピーしないといけないが、data1=func()のときはポインタだけコピーすればいい。
そこで右辺値参照を使って以下のように書いてみた。

data1=func()のときは右辺値参照が引数となったoperator=()が呼ばれる。

data1 = data2のときも右辺値参照で呼びたいときにはmove()を使う

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)