ヘルパーにはenable_shared_from_this
、オブジェクトへの共有ポインターを作成するときに設定される弱いポインターが含まれています。これは、参照カウント(個別に、またはを使用してオブジェクトと一緒に割り当てられるmake_shared
)とオブジェクトに余分なものがあることを意味weak_ptr
します。
では、なぜ代わりに参照カウントが含まれていないのですか?ダムポインタから設定する場合shared_ptr
は、型を完全に定義する必要があるため、shared_ptr
コンストラクタまたは代入演算子は、型が派生していることを検出しenable_shared_from_this
て正しいカウンタを使用でき、形式は同じままであるため、コピーは関係ありません。実際、shared_ptr
埋め込みを設定するには、すでにそれを検出する必要がありますweak_ptr
。