【发布时间】:2013-02-11 00:51:08
【问题描述】:
我有一个函数
struct foo {
std::vector<int> v;
};
foo func();
foo里面的向量在函数返回时会被移动还是复制?
【问题讨论】:
-
不,它会被移动。
-
这完全取决于
func内部发生的事情。 -
@BoPersson 不完全是,因为这个问题是关于返回一个
vector,而这是关于返回一个带有默认移动构造函数和一个vector成员的结构。 -
@delnan - 没有区别。另一个问题是关于一般的返回值,涵盖了这种情况。
-
@BoPersson 这里重要的一件事,我在那个问题的任何地方都没有找到,是移动没有用户定义的移动构造函数的结构是移动成员还是复制它们。我不怀疑以前也有人问过并回答过这个问题,但是您链接到的具体问题并不能完全解决恕我直言。