次の例を見てください。
string foo(int i) {
string a;
... Process i to build a ...
return a;
}
void bar(int j) {
const string& b = foo(j);
cout << b;
}
私はRVOとNRVOを知っていますが、それを行うには、次のようにバーを書く必要があると思いました。
void bar(int j) {
string b = foo(j);
cout << b;
}
どちらのバージョンも機能しているようで、同じパフォーマンスであると思います。最初のバージョン(const参照付き)を使用しても安全ですか?
ありがとう。