Посмотрите на следующий пример:
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)?
Спасибо.