私はこのコードを持っています:
string&& getString() {
string s {"test"};
return move(s);
}
そして私は出力しようとしました:
cout << getString() << endl;
空の出力が得られます。
私が使用する場合:
string getString() {
string s {"test"};
return move(s);
}
できます。
私の質問:
最初のものはなぜ機能しないのですか?ローカル オブジェクトが破棄されないように参照を移動しましたか?
2番目のものは「コピー」しますか(RVOを考慮していません)?