Quelles implémentations de pointeurs intelligents C sont disponibles ?
C 03
-
std::auto_ptr: Ramassage des ordures limité, impossible de conserver le tableau alloué objets,不支持拷贝,已废弃。
-
std::auto_ptr_ref: Pas un pointeur intelligent, utilisé avec std::auto_ptr pour la copie et l'affectation.
C 11
-
std::unique_ptr: Remplace std::auto_ptr, performances améliorées, fonctionne avec des tableaux, peut être utilisé dans les conteneurs STL.
-
std::shared_ptr: Pointeur intelligent avec comptage de référence, peut être partagé par plusieurs propriétaires, thread-safe.
-
std::weak_ptr: Référence à un objet appartenant à std::shared_ptr, n'empêche pas suppression.
Boost
-
boost::shared_ptr: Ptr partagé conforme aux normes, facile à utiliser , frais généraux élevés dans certains cas.
-
boost::weak_ptr: Low_ptr conforme à la norme, permet aux références non propriétaires de boost::shared_ptr.
-
boost::scoped_ptr: Semblable à std::unique_ptr, moins de surcharge que boost::shared_ptr, impossible être utilisé dans les conteneurs STL.
-
boost::intrusive_ptr: Pointeur intelligent personnalisable pour créer vos propres classes compatibles avec les pointeurs intelligents.
-
boost::shared_array : Shared_ptr pour les tableaux, prend en charge l'allocation dynamique des tableaux et suppression.
-
boost::scoped_array: Scoped_ptr pour les tableaux, non copiable, ne peut pas être utilisé en STL conteneurs.
Qt
-
QPointer : Pointeur intelligent faible pour QObject et les classes dérivées, ne fournit pas de fort pointeur.
-
QSharedDataPointer : Pointeur intelligent puissant, nécessite un comptage manuel des références, peut sous-classer QSharedData.
-
QExplicitlySharedDataPointer : Semblable à QSharedDataPointer, offre plus de contrôle sur détachement.
-
QSharedPointer : Comptage de références atomiques, thread-safe, suppressions personnalisables, surcharge élevée.
-
QWeakPointer : Pointeur intelligent faible, utilisé avec QSharedPointer pour empêcher la circulaire références.
-
QScopedPointer : Pointeur intelligent à propriétaire unique, moins de frais généraux que QSharedPointer.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!