基本的な方法を仮定します:
std::string StringTest()
{
std::string hello_world("Testing...");
return std::move(hello_world);
}
出力の使用方法:
オプション A:
auto& string_test_output=StringTest();
オプション B:
auto string_test_output=StringTest();
StringTest() は一時的な値ですか? もしそうなら、オプション A は安全ではありません。一時的な値でなければ、オプション B でコピーが発生するような気がします。
私はまだ RValue 参照に慣れているので、コピーが発生したり、不要なコピーが発生したりしたくないので、値で返すことはまだ非常に怖いです!