关于 return-by-value 与 C++ 中的 ref 的指南?
guideline on return-by-value vs ref in C++?
在 C++ 中,我在哪里可以获得 函数 returning 类型决策 的总结性指南?
我知道以下内容:
• 局部变量必须return按值
编辑
• 在重对象上更喜欢按常量引用传递而不是按值传递
但是,我仍然想知道我应该在 (return-by-) 值中选择什么;常量值;参考;可能开发中的 const-ref situations/scenarios?
return-按值:
// built-in
const int foo();
int foo();
// user-defined
const Person foo();
Person foo();
return-参考:
// built-in
const int& foo();
int& foo();
// user-defined
const Person& foo();
Person& foo();
使用 RVO(Return 价值优化)和 Copy elision you can and should return "by-value". Even for super big objects. Please see also here and here
但是:没有一般规则。一如既往,这取决于。
但是通过上面的介绍,你应该会有更好的理解。
在 C++ 中,我在哪里可以获得 函数 returning 类型决策 的总结性指南?
我知道以下内容:
• 局部变量必须return按值
编辑• 在重对象上更喜欢按常量引用传递而不是按值传递
但是,我仍然想知道我应该在 (return-by-) 值中选择什么;常量值;参考;可能开发中的 const-ref situations/scenarios?
return-按值:
// built-in
const int foo();
int foo();
// user-defined
const Person foo();
Person foo();
return-参考:
// built-in
const int& foo();
int& foo();
// user-defined
const Person& foo();
Person& foo();
使用 RVO(Return 价值优化)和 Copy elision you can and should return "by-value". Even for super big objects. Please see also here and here
但是:没有一般规则。一如既往,这取决于。
但是通过上面的介绍,你应该会有更好的理解。