Namespaces
Variants

std::scoped_allocator_adaptor<OuterAlloc,InnerAlloc...>:: outermost , outermost-construct , outermost-destroy

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)
template < class Alloc >
/* sin especificar */ /*outermost*/ ( Alloc && alloc = * this ) ;
(1) ( solo para exposición* )
template < class T, class ... Args >
void /*outermost-construct*/ ( T * p, Args && ... args ) ;
(2) ( solo para exposición* )
template < class T >
void /*outermost-destroy*/ ( T * p ) ;
(3) ( solo para exposición* )

Estas plantillas de funciones miembro auxiliares solo para exposición se utilizan en las funciones miembro construct() y destroy() .

1) Obtiene el asignador más externo de alloc .
  • Si la expresión alloc. outer_allocator ( ) es válida, retorna outermost  ( alloc. outer_allocator ( ) ) .
  • En caso contrario, retorna alloc .
2,3) Construye o destruye un objeto utilizando el asignador más externo de * this .
Dado el tipo std:: allocator_traits < std:: remove_reference_t < decltype ( outermost  ( ) ) >> como outermost_traits :
2) Equivalente a outermost_traits :: construct ( outermost  ( ) , p, std:: forward < Args > ( args ) ... ) ; .
3) Equivalente a outermost_traits :: destroy ( outermost  ( ) , p ) ; .

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 3116 C++11 la condición de recursión para outermost era " alloc
tiene la función miembro outer_allocator() "
cambiado a "la expresión
alloc. outer_allocator ( ) es válida"

Véase también

[static]
construye un objeto en el almacenamiento asignado
(plantilla de función)
[static]
destruye un objeto almacenado en el almacenamiento asignado
(plantilla de función)