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)
Definido en el encabezado <scoped_allocator>
scoped_allocator_adaptor ( ) ;
(1) (desde C++11)
template < class OuterA2 >

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

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

const scoped_allocator_adaptor & other

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

scoped_allocator_adaptor && other

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

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

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

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

) noexcept ;
(6) (desde C++11)
1) Constructor predeterminado: inicializa por valor la clase base OuterAlloc y el objeto miembro del asignador interno, si es utilizado por la implementación.
2) Construye la clase base OuterAlloc desde std:: forward < OuterA2 > ( outerAlloc ) , y los asignadores internos con innerAllocs... . Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_constructible < OuterAlloc, OuterA2 > :: value es true .
3) Constructor de copia: inicializa cada asignador desde el asignador correspondiente de other .
4) Constructor de movimiento: mueve cada asignador desde el asignador correspondiente de other hacia * this .
5) Inicializa cada asignador desde el asignador correspondiente de other . Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_constructible < OuterAlloc, const OuterA2 & > :: value es true .
6) Inicializa cada asignador desde el asignador correspondiente de other , usando semántica de movimiento. Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_constructible < OuterAlloc, OuterA2 > :: value es true .

Parámetros

outerAlloc - argumento del constructor para el asignador externo
innerAllocs... - argumentos del constructor para los asignadores internos
other - otro std::scoped_allocator_adaptor

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2782 C++11 los constructores que toman OuterA2 no estaban restringidos, interfiriendo con la metaprogramación restricción añadida

Véase también

asigna almacenamiento sin inicializar usando el asignador externo
(función miembro pública)
construye un objeto en almacenamiento asignado, pasando el asignador interno a su constructor si es apropiado
(función miembro pública)