相关疑难解决方法(0)

我应该将ref或副本分配给值返回函数吗?

我们有一堆值返回函数:

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

3
推荐指数
1
解决办法
121
查看次数