C++11の右辺値参照と、コードで最適なパフォーマンスを得るためにそれらを使用する方法を理解しようとしています。
A動的に割り当てられた大量のデータへのメンバー ポインターを持つクラスがあるとします。
さらに、foo(const A& a)class のオブジェクトで何かを行うメソッドA。
のオブジェクトがfunction に渡されたときに、 のコピー コンストラクターAが呼び出されないようにしたいと考えています。その場合、基になるヒープ データのディープ コピーが実行されるためです。Afoo
左辺値参照を渡すことをテストしました:
A a;
foo(a);
そして右辺値参照を渡します:
foo(A());
どちらの場合も、コピー コンストラクターは呼び出されませんでした。
これは予想どおりですか、それともコンパイラ (Apple LLVM 5.1) の最適化によるものですか? これに関する仕様はありますか?