std:: indirect
|
Défini dans l'en-tête
<memory>
|
||
|
template
<
class
T,
class
Allocator
=
std::
allocator
<
T
>
>
class indirect ; |
(1) | (depuis C++26) |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (depuis C++26) |
std::indirect
est un wrapper contenant un objet alloué dynamiquement avec une sémantique de type valeur.
Un objet
std::indirect
gère la
durée de vie
d'un objet possédé. Un objet
std::indirect
ne peut n'avoir aucun objet possédé qu'après avoir été déplacé, auquel cas il est
sans valeur
.
Chaque objet de type
std::indirect<T, Allocator>
utilise un objet de type
Allocator
pour allouer et libérer le stockage pour l'objet possédé selon les besoins.
Si un programme déclare une spécialisation explicite ou partielle de
std::indirect
, le comportement est indéfini.
Table des matières |
Paramètres du modèle
| T | - | le type de l'objet possédé |
| Allocator | - | le type de l'allocateur associé |
| Exigences de type | ||
-
T
peut être un
type incomplet
.
|
||
-
T
est l'un des types suivants, le programme est mal formé :
|
||
-
Allocator
ne satisfait pas aux exigences de
Allocator
, le programme est mal formé.
|
||
-
T
, le programme est mal formé.
|
||
Types imbriqués
| Type | Définition |
value_type
|
T
|
allocator_type
|
Allocator
|
pointer
|
typename std:: allocator_traits < Allocator > :: pointer |
const_pointer
|
typename std:: allocator_traits < Allocator > :: const_pointer |
Membres de données
| Membre | Description |
pointer
p
|
un pointeur vers la valeur possédée
( objet membre d'exposition uniquement* ) |
Allocator
alloc
|
l'allocateur associé
( objet membre d'exposition uniquement* ) |
Fonctions membres
construit l'objet
indirect
(fonction membre publique) |
|
|
détruit la valeur possédée, s'il y en a une
(fonction membre publique) |
|
|
assigne le contenu
(fonction membre publique) |
|
Observateurs |
|
|
accède à la valeur possédée
(fonction membre publique) |
|
vérifie si l'
indirect
est sans valeur
(fonction membre publique) |
|
|
retourne l'allocateur associé
(fonction membre publique) |
|
Modificateurs |
|
|
échange le contenu
(fonction membre publique) |
|
Fonctions non membres
|
(C++26)
(C++26)
|
compare les objets
indirect
(modèle de fonction) |
|
(C++26)
|
spécialise l'algorithme
std::swap
(modèle de fonction) |
Classes d'assistance
|
(C++26)
|
prise en charge du hachage pour
std::indirect
(spécialisation de modèle de classe) |
Guides de déduction
Notes
| Macro de test de fonctionnalité | Valeur | Norme | Fonctionnalité |
|---|---|---|---|
__cpp_lib_indirect
|
202502L
|
(C++26) |
std::indirect
|
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
(C++26)
|
un wrapper polymorphique contenant un objet alloué dynamiquement avec une sémantique de valeur
(modèle de classe) |
|
(C++11)
|
pointeur intelligent avec sémantique de propriété exclusive d'objet
(modèle de classe) |