Somewhat related to this,我有一个关于返回const
以及它如何影响RVO和移动的问题。我通常喜欢让我的函数返回const
这样的对象:
// Return const to help ensure the potential temporary can't be used incorrectly
const std::vector<int> foo()
{
std::vector<int> bar(10, 42); // Note: this is not const
return bar;
}
现在我有一个关于它如何影响RVO和移动的问题。如果我执行以下操作:
std::vector<int> myVector = foo();
const
的{{1}} - 返回类型是否会抑制RVO或移动?即使foo
本身的局部变量不是foo
?如果我想利用RVO并移动语义,我应该摆脱const
吗?