是否将prvalue移动到函数模板uref参数中?

时间:2018-01-23 22:34:07

标签: c++11 move-semantics forwarding-reference prvalue

我的问题是,将std :: move(或不是)prvalue转换为全能函数模板是否有意义,因此需要通用参考T&&在它的签名。另外我想知道copy-move elision / RVO是否在这个决定中起作用。

问题(S): 引用崩溃会导致foo被调用T&& (右值引用)或者没有std :: move并且RVO对它(或RVO上的那个)有什么影响吗?

template < typename T >
void foo(T&& arg)
{
    //Whatever..
}

A func()
{
    A m;
    return m;
}

// called anywhere you like
foo(std::move(func()));

提前致谢 萨姆

1 个答案:

答案 0 :(得分:1)

除了使编译器,优化器和代码的读者做更多无意义的工作之外,move没有任何影响。

不要这样做。