タグ

C++11と右辺値参照に関するyowanoのブックマーク (3)

  • 右辺値参照とムーブセマンティクス - 株式会社CFlatの明後日スタイルのブログ

    資料だけならWeb上に多かれど、いまいちピンとこないのがこの2つの機能ではないかと思います。大体この2つはセットにして語られるので、どこからどこまでが右辺値参照の機能でどこからどこまでがムーブセマンティクスの機能なのかを混同してしまう、ということも理解の混乱に拍車をかけている気がします。私だけかもしれませんが。 ●右辺値参照 そんなわけで明らかにしておきたい事は、つまりはこういうことです。 右辺値参照は、あくまでも「単なる参照」であり、右辺値参照=ムーブコンストラクタを呼びだすための機能、ではない 右辺値参照は、あくまでも「単なる参照」であり、Hoge &&piyo = hoge; とすればHogeのムーブコンストラクタが呼び出される、というわけではない ※ 2013/01/23:faith_and_brave様のご指摘を受けて、表現を変更いたしました。 右辺値参照も、基的にはただの参照

    右辺値参照とムーブセマンティクス - 株式会社CFlatの明後日スタイルのブログ
    yowano
    yowano 2014/01/06
    『一時変数を右辺値参照した場合、その一時変数の寿命は右辺値参照変数の寿命と一致する(一時変数へのconst参照の場合も同じ)』『右辺値参照変数自体は、右辺値ではなく左辺値である』
  • 本当は怖くないムーブセマンティクス - yohhoyの日記(別館)

    この記事はC++ Advent Calendar 2012の15日目にエントリしています。 内容はC++11「ムーブセマンティクス」の入門記事となっています。 もくじ ムーブセマンティクス再考 シンタックス vs. セマンティクス コピー vs. ムーブ ムーブのもつ2つの意味 C++11のムーブセマンティクス対応 auto_ptrからunique_ptrへ auto_ptrの暗い過去 unique_ptrへの移行 std::moveの役割 ムーブセマンティクスを使おう C++11標準ライブラリとムーブ ムーブ"後"の中身は? ムーブを利用して関数を書く (文のみ約9500字) まえがき To move or not to move: that is the question. ― Bjarne Stroustrup, 2010(改)*1 プログラミング言語C++の新しい国際標準規格*2

    本当は怖くないムーブセマンティクス - yohhoyの日記(別館)
    yowano
    yowano 2013/08/30
    『右辺値参照を用いたテンプレート関数の自作や、右辺値参照に対応したクラスの自作は行わない』という前提を掲げ、『ムーブセマンティクスを利用するだけ』という観点からのみの解説。物凄く丁寧で分かりやすい。
  • 本の虫: rvalue reference 完全解説

    目的 この記事は、C++0xのrvalue referenceを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からrvalue referenceを恐れることなく使う物のC++0xプログラマになれるだろう。 lvalueとrvalueについて Cの時代では、lvalueとrvalueの違いは、代入演算子の左側か右側かという違いだけであった。つまり、left hand value, right hand valueの略である。従って、訳語も、左辺値、右辺値であった。C++においては、これはもはや正しくはない。従って、右辺値、左辺値というのも、誤訳である。それ故に、ここでは、これ以上、左辺値、右辺値という名称を使用しない。 誤解を恐れずにいえば、lvalueとは、明示的に実体のある、名前付きのオブジェクトであり、rvalue

  • 1