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

C++11 是否将prvalue移动到函数模板uref参数中?,c++11,move-semantics,forwarding-reference,prvalue,C++11,Move Semantics,Forwarding Reference,Prvalue,我的问题是,将一个prvalue移动(或不移动)到一个catch-all函数模板中是否有意义,该模板相应地在其签名中使用了一个通用引用T&&。此外,我还想知道拷贝移动省略/RVO是否在这一决策中起作用 问题: 引用折叠是否会导致使用T&&(右值引用)或w/o std::move调用foo,并且RVO对其有任何影响(或对RVO有影响) 模板 无效foo(T&&arg) { //不管怎样。。 } A func() { 上午 返回m; } //打电话到你喜欢的任何地方 foo(std::move(fu

我的问题是,将一个prvalue移动(或不移动)到一个catch-all函数模板中是否有意义,该模板相应地在其签名中使用了一个通用引用T&&。此外,我还想知道拷贝移动省略/RVO是否在这一决策中起作用

问题: 引用折叠是否会导致使用T&&(右值引用)或w/o std::move调用foo,并且RVO对其有任何影响(或对RVO有影响)

模板
无效foo(T&&arg)
{
//不管怎样。。
}
A func()
{
上午
返回m;
}
//打电话到你喜欢的任何地方
foo(std::move(func());
提前谢谢
Sam

认为
move
除了让编译器、优化器和代码的读者做更多无意义的工作之外,没有任何效果


不要这样做。

从学习
main()
返回的内容开始。。。无论如何,这是一个模糊的问题或一组问题,我不能相信(a)它还没有被回答,或者(B)你不能为它编写你自己的测试。我只想强调一个带有主要功能的范围。重点在于通话以及具体发生了什么。无论如何,如果这有助于集中精力解决问题,我会纠正它。是的,这更具有理论性。我想知道应该发生什么,因此期待什么,而不是我的特定编译器正在做什么。这对我来说纯粹是研究,因为我不确定我是否正确理解了事件链。如果你不想帮忙,没关系。但也许其他人是。我发现现有的话题还不能消除我的疑虑。
template < typename T >
void foo(T&& arg)
{
    //Whatever..
}

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

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