【发布时间】:2017-12-20 07:18:03
【问题描述】:
考虑以下 sn-p:
class Bar {...};
class Foo {
public:
Foo(const Bar& bar): bar_(bar) {}
private:
Bar bar_;
};
int main() {
Foo foo({...}); // Passing an rvalue Bar object here.
}
问题:我生成的对象会被复制到 Foo 的构造函数中,还是会被移动?更准确地说,以下哪项是正确的?
- 它将始终被复制。
- 它总是会被移动(我很确定不是这样)。
- 这是未指定的行为。
【问题讨论】:
标签: c++ c++11 move-semantics rvalue-reference