この質問は、コンストラクタの引数としてboost::shared<T>&
の有用性を議論する以前のpost拡張:目的
class SomeClass {
SomeClass(const boost::shared_ptr<SomeOtherClass>&);
}
うboost::shared_ptr<T>&
提供任意の利点の代わりに、右辺値参照引数?特に
class SomeClass {
SomeClass(const boost::shared_ptr<SomeOtherClass>&&);
}
、マルチスレッドの設定のため、shared_ptrの型の右辺値参照して、コンストラクタは、任意のより有用次いでによって価値渡すことになるか、参照渡し?
rvalue参照を使用すると、 'shared_ptr'を内部メンバーにコピーするのではなく_move_できます。 'shared_ptr'をコピーすると参照カウントが増えますが、これは最初に考えたよりもかなり高価です。スレッドセーフである 'shared_ptr'をコピーする際に、移動するものがスレッドセーフではないことに注意してください。 –