可能重复:
按值传递是 C++11 中合理的默认值吗?
我在读想要速度?按值传递。戴夫亚伯拉罕关于复制省略和 RVO。我想知道为什么我们需要复制省略?
我被告知太多次,你应该通过 const 引用传递函数参数以避免复制(我读过的几乎每一本 c++ 书籍都告诉我这一点)。
假设我们有两个函数:
int f1(const string &s);
int f2(string s);
如果实际参数是右值,则在两个函数中都将避免复制。但是如果实际参数是一个左值,复制只会在 f1 中避免,而不是在 f2 中。那么为什么我们需要这个功能呢?