6

メンバーがパラメータの所有権を取得するという問題に対する2つの合理的な解決策があります。

Foo::Foo(std::unique_ptr<int> parameter)
: member(std::move(parameter))
{
}

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

これらのうち、慣用的で、理解しやすく、デバッグしやすく、保守しやすいものはどれですか?

私が見逃した問題に対する追加の解決策はありますか?

4

1 に答える 1

12

常に初期化子リストを優先します。さらに、たとえば、移動できるがスワップできないタイプ、またはデフォルトの構築のためにコストのかかる操作を実行する必要があるタイプ、または実際には、単にデフォルトで構築できないタイプについても説明します。

于 2012-07-09T13:50:07.263 に答える