【发布时间】:2015-04-08 11:53:47
【问题描述】:
在以下代码中:
Widget makeWidget()
{
return Widget();
}
void foo(Widget widget)
{
...
}
foo(makeWidget());
Widget 对象将始终就地构造(在 foo 函数内),因此不会发生移动构造(至少在我尝试过的所有编译器中)。以实际发生移动构造的方式将临时值传递给函数的简单示例有哪些(没有显式移动,即使用 std::move)?
【问题讨论】:
-
我很好奇,你为什么要避免移动省略号?
-
我只是想更好地理解C++。
-
您在寻找 gcc 标志
-fno-elide-constructors吗?
标签: c++ move-semantics copy-elision