返回std :: thread

时间:2019-02-05 08:18:21

标签: c++ scope copy return-value move

我想知道为什么当std::thread仅可移动时,从函数返回std::thread是可以的。是因为优化返回值还是一般有效?

考虑以下代码:

std::thread f()
{
    void some_function();
    return std::thread(some_function);
}
std::thread g()
{
    void some_other_function(int);
    std::thread t(some_other_function, 42);
    return t;
}


int main() {

    std::thread t0 = f();
    std::thread t1 = g();

    return 0;
}

我很好奇std::thread t0 = f();std::thread t1 = g();依赖(N)RVO还是总体上有效。

假设没有发生返回值优化,那么是否不应该在f()(和g())进行复制?

0 个答案:

没有答案