我们有一堆值返回函数:
Foo function_1(){
Foo f;
// ...
return f;
}
Bar function_2(){
Bar b;
// ...
return b;
}
Baz function_3(){
Baz b;
// ...
return b;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用它们来创建局部变量的实例化:
void example(){
//...
const auto foo = function_1();
//...
const auto bar = function_2();
//...
const auto baz = function_3();
}
Run Code Online (Sandbox Code Playgroud)
但是,我的队友一直要求我将我的所有实例转换为使用&:
void example(){
//...
const auto& foo = function_1();
//...
const auto& bar = function_2();
//...
const auto& baz = function_3();
}
Run Code Online (Sandbox Code Playgroud)
这样做的理由似乎与以下问题相符:
为什么不总是将返回值赋给const引用?
我理解auto& x = …
c++ reference return-value move-semantics return-value-optimization