は、私は2つの関数AとB戻り値の最適化(RVO)Cに一時を用い++
関数AがオブジェクトXを返し、関数Bは、引数としてオブジェクトXを取得を有していると言うことができます。例えば。
X A() {
X x;
return x;
}
void B(X x) {
write(x.data, x.size);
}
int main() { B(A()); }
は、Xは、RVOを使用してBの一時的なとして一度だけ構築したり、私が移動セマンティクスを使用する必要があります。このオブジェクトです。
答えが最も可能性の高いあなたのコンパイラに依存することになります印刷していないRVOで
を印刷します。特定のコンパイラを覚えていますか? –