成员如何拥有参数的所有权?

6
我看到了两个解决成员占用参数所有权问题的合理方案:
Foo::Foo(std::unique_ptr<int> parameter)
: member(std::move(parameter))
{
}

Bar::Bar(std::unique_ptr<int> parameter)
{
    member.swap(parameter);
}

哪一个更符合习惯用语,更容易理解、调试和维护等方面的要求?
是否有我忽略的其他解决方案?
1个回答

12

始终优先使用初始化列表。此外,它包括可以移动但不能交换的类型,例如可能需要执行昂贵操作进行默认构建的类型-或者实际上无法进行默认构建的类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接