Namespaces
Variants

std::scoped_allocator_adaptor<OuterAlloc,InnerAlloc...>:: scoped_allocator_adaptor

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
Défini dans l'en-tête <scoped_allocator>
scoped_allocator_adaptor ( ) ;
(1) (depuis C++11)
template < class OuterA2 >

scoped_allocator_adaptor (
OuterA2 && outerAlloc, const InnerAllocs & ... innerAllocs

) noexcept ;
(2) (depuis C++11)
scoped_allocator_adaptor (

const scoped_allocator_adaptor & other

) noexcept ;
(3) (depuis C++11)
scoped_allocator_adaptor (

scoped_allocator_adaptor && other

) noexcept ;
(4) (depuis C++11)
template < class OuterA2 >

scoped_allocator_adaptor (
const scoped_allocator_adaptor < OuterA2, InnerAllocs... > & other

) noexcept ;
(5) (depuis C++11)
template < class OuterA2 >

scoped_allocator_adaptor (
scoped_allocator_adaptor < OuterA2, InnerAllocs... > && other

) noexcept ;
(6) (depuis C++11)
1) Constructeur par défaut : initialise par valeur la classe de base OuterAlloc et l'objet membre allocateur interne, s'il est utilisé par l'implémentation.
2) Construit la classe de base OuterAlloc à partir de std:: forward < OuterA2 > ( outerAlloc ) , et les allocateurs internes avec innerAllocs... . Cette surcharge participe à la résolution de surcharge seulement si std:: is_constructible < OuterAlloc, OuterA2 > :: value est true .
3) Constructeur de copie : initialise chaque allocateur à partir de l'allocateur correspondant de other .
4) Constructeur de déplacement : déplace chaque allocateur de l'allocateur correspondant de other dans * this .
5) Initialise chaque allocateur à partir de l'allocateur correspondant de other . Cette surcharge participe à la résolution de surcharge seulement si std:: is_constructible < OuterAlloc, const OuterA2 & > :: value est true .
6) Initialise chaque allocateur à partir de l'allocateur correspondant de other , en utilisant la sémantique de déplacement. Cette surcharge participe à la résolution de surcharge uniquement si std:: is_constructible < OuterAlloc, OuterA2 > :: value est true .

Paramètres

outerAlloc - argument du constructeur pour l'allocateur externe
innerAllocs... - arguments du constructeur pour les allocateurs internes
other - autre instance de std::scoped_allocator_adaptor

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement publié Comportement corrigé
LWG 2782 C++11 les constructeurs prenant OuterA2 n'étaient pas contraints, interférant avec la métaprogrammation contrainte ajoutée

Voir aussi

alloue un stockage non initialisé en utilisant l'allocateur externe
(fonction membre publique)
construit un objet dans le stockage alloué, en passant l'allocateur interne à son constructeur si approprié
(fonction membre publique)