どのような C スマート ポインター実装が利用可能ですか?
C 03
-
std::auto_ptr: ガベージ コレクションが制限されており、配列に割り当てられたオブジェクトを保持できません。コピーはサポートされていません。
-
std::auto_ptr_ref: スマート ポインターではありません。コピーと代入のために std::auto_ptr とともに使用されます。
C 11
-
std::unique_ptr: std::auto_ptr を置き換え、パフォーマンスを向上させ、配列で動作します。 STL コンテナで使用できます。
-
std::shared_ptr: 参照カウント付きスマート ポインタ。複数の所有者によって共有可能、スレッドセーフ。
-
std::weak_ptr: std::shared_ptr が所有するオブジェクトへの参照は妨げられません
Boost
-
boost::shared_ptr: 標準準拠のshared-ptr、使いやすい、一部では高いオーバーヘッドcase.
-
boost::weak_ptr: 標準準拠のweak_ptr、非所有参照による boost::shared_ptr.
-
boost::scoped_ptr: std::unique_ptr に似ていますが、よりオーバーヘッドが少ないですboost::shared_ptr、STL コンテナでは使用できません。
-
boost::intrusive_ptr: 独自のスマート ポインター互換クラスを作成するためのカスタマイズ可能なスマート ポインター。
-
boost::shared_array: 配列の Shared_ptr、動的配列割り当てをサポートし、削除。
-
boost::scoped_array: 配列の Scoped_ptr はコピー不可で、STL では使用できませんコンテナー。
Qt
-
QPointer: QObject および派生クラスの弱いスマート ポインター。強いpointer.
-
QSharedDataPointer: 強力なスマート ポインター。手動による参照カウントが必要で、QSharedData をサブクラス化できます。
-
QExplicitlySharedDataPointer: QSharedDataPointer と同様、より詳細な制御を提供します以上デタッチ中。
-
QSharedPointer: アトミック参照カウント、スレッドセーフ、カスタマイズ可能な削除、高オーバーヘッド。
-
QWeakPointer: 弱いスマート ポインタ。循環を防ぐための QSharedPointer References.
-
QScopedPointer: 単一所有者のスマート ポインター。QSharedPointer よりもオーバーヘッドが少ないです。
以上がどのような C スマート ポインター実装が存在し、それらはどのように異なるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。