Namespaces
Variants

std::experimental:: shared_ptr

From cppreference.net
Défini dans l'en-tête <experimental/memory>
template < class T > class shared_ptr ;
(library fundamentals TS)

std::experimental::shared_ptr est une version modifiée de std::shared_ptr qui ajoute la prise en charge des tableaux.

Table des matières

Types membres

Type de membre Définition
element_type std:: remove_extent_t < T >

Fonctions membres

construit un nouveau shared_ptr
(fonction membre publique)
Observateurs
retourne le pointeur stocké
(fonction membre publique)
déréférence le pointeur stocké
(fonction membre publique)
fournit un accès indexé au tableau
(fonction membre publique)

Fonctions non membres

applique static_cast , dynamic_cast , const_cast , ou reinterpret_cast au pointeur stocké
(modèle de fonction)

Classes d'assistance

prise en charge du hachage pour std::experimental::shared_ptr
(spécialisation de modèle de classe)

Membres et non-membres identiques à std:: shared_ptr

Fonctions membres

Les fonctions membres suivantes fonctionnent avec std::experimental::shared_ptr au lieu de std::shared_ptr et std::experimental::weak_ptr au lieu de std::weak_ptr . Le comportement est par ailleurs identique.

détruit l'objet possédé si aucun autre shared_ptr ne pointe vers lui
(fonction membre publique de std::shared_ptr<T> )
assigne le shared_ptr
(fonction membre publique de std::shared_ptr<T> )
Modificateurs
remplace l'objet géré
(fonction membre publique de std::shared_ptr<T> )
échange les objets gérés
(fonction membre publique de std::shared_ptr<T> )
Observateurs
retourne le nombre d'objets shared_ptr référençant le même objet géré
(fonction membre publique de std::shared_ptr<T> )
(jusqu'à C++20)
vérifie si l'objet géré est géré uniquement par l'objet shared_ptr courant
(fonction membre publique de std::shared_ptr<T> )
vérifie si le pointeur stocké n'est pas nul
(fonction membre publique de std::shared_ptr<T> )
fournit un ordonnancement basé sur le propriétaire des pointeurs partagés
(fonction membre publique de std::shared_ptr<T> )

Fonctions non membres

Ces fonctions non membres sont déclarées dans l'espace de noms std::experimental , et fonctionnent avec std::experimental::shared_ptr plutôt qu'avec std::shared_ptr , mais se comportent par ailleurs de manière identique à la fonction C++14 correspondante.

crée un pointeur partagé qui gère un nouvel objet
(modèle de fonction)
crée un pointeur partagé qui gère un nouvel objet alloué à l'aide d'un allocateur
(modèle de fonction)
retourne le suppresseur du type spécifié, s'il est possédé
(modèle de fonction)
(supprimé en C++20) (supprimé en C++20) (supprimé en C++20) (supprimé en C++20) (supprimé en C++20) (C++20)
compare avec un autre shared_ptr ou avec nullptr
(modèle de fonction)
affiche la valeur du pointeur stocké dans un flux de sortie
(modèle de fonction)
spécialise l'algorithme std::swap
(modèle de fonction)
spécialise les opérations atomiques pour std::shared_ptr
(modèle de fonction)

Modèles de classes auxiliaires

Ces modèles de classe sont déclarés dans l'espace de noms std::experimental , et fonctionnent avec std::experimental::shared_ptr et std::experimental::weak_ptr plutôt qu'avec std::shared_ptr et std::weak_ptr , mais se comportent autrement de manière identique au modèle de classe C++14 correspondant.

(C++11)
fournit un ordonnancement basé sur le propriétaire de types mixtes pour les pointeurs partagés et faibles
(modèle de classe)
permet à un objet de créer un shared_ptr se référant à lui-même
(modèle de classe)

Exemple