是否可以使用右值初始化数据成员?

问题描述 投票:0回答:1

我对r值引用和移动语义非常陌生,但是我阅读的教程的态度是:“由于临时结构是一个构造良好的对象,通常会被复制和销毁,所以为什么不延长其寿命并移动它呢? ?“

所以我正在想象这样的情况:

class Foo
{
  Foo m_foo; // Could also be a reference or a unique_ptr of any sort
public:
  Foo() {}
  Foo(Foo &&v_foo) { /*initialize m_foo using v_foo.*/ }

};

int main() 
{
  auto foo = std::make_unique<Foo>( Foo() );
  return 1;
}

像这样可能吗?

c++14 unique-ptr move-semantics rvalue-reference
1个回答
0
投票
您正在寻找的被称为move constructor
© www.soinside.com 2019 - 2024. All rights reserved.