タプル/タイの場合の戻り値の最適化を見ています。私が観察した動作は期待通りではありません。以下の例では、移動セマンティクスがキックインされることを期待していますが、残っているコピー操作が1つあります。最適化で下からの出力は次のようになります。 Test duo output, non_reference tuple
Default constructor invoked
Parameter c
複数の質問like this oneのためにRVO(とNRVO)の定義の周りに頭を上げることはできません。私にはRVOがコピーコンストラクタを省略していると思われます。今このような場合には12.8.15 によれば、実装が同じオブジェクトを参照する、単に二つの異なる方法省略コピー操作のソースとターゲットを扱い、そのオブジェクトの破壊は、後に発生します2つのオブジェクトが最適化されずに破壊された時代の
大きなベクトルを設定する関数の戻り値としてauto_ptrを使用すると、関数がソース関数になります(内部auto_ptrが作成され、 const auto_ptr)。しかし、データにアクセスするためには、auto_ptrを削除する必要があるため、この関数をSTLアルゴリズムで使用することはできません。私が推測する良い例は、サイズNのベクトルのフィールドであり、各ベクトルは100の成分を有する。 W