const返回类型是否会抑制RVO /移动?

时间:2013-08-31 16:57:50

标签: c++ c++11 move-semantics

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吗?

0 个答案:

没有答案