Namespaces
Variants

std::pmr::polymorphic_allocator<T>:: new_object

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 U, class ... CtorArgs >
U * new_object ( CtorArgs && ... ctor_args ) ;
(desde C++20)

Asigna y construye un objeto de tipo U .

Dado que alloc es un std:: pmr :: polymorphic_allocator < T > :

U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...);

es equivalente a

U* p = alloc.allocate_object<U>();
try
{
    alloc.construct(p, std::forward<CtorArgs>(ctor_args)...);
}
catch (...)
{
    alloc.deallocate_object(p);
    throw;
}

Contenidos

Parámetros

ctor_args - los argumentos a reenviar al constructor de U

Valor de retorno

Un puntero al objeto asignado y construido.

Notas

Esta función se introdujo para su uso con el asignador completamente especializado std:: pmr :: polymorphic_allocator <> , pero puede ser útil en cualquier especialización como un atajo para evitar tener que reenlazar desde std:: pmr :: polymorphic_allocator < T > a std:: pmr :: polymorphic_allocator < U > , y tener que llamar allocate , construct , y deallocate individualmente.

Dado que U no se deduce, debe proporcionarse como argumento de plantilla al llamar a esta función.

Excepciones

Puede lanzar cualquier excepción lanzada por la llamada a allocate_object o el constructor de U .

Véase también

asigna memoria alineada en bruto del recurso subyacente
(función miembro pública)
asigna memoria en bruto adecuada para un objeto o un array
(función miembro pública)
asigna memoria
(función miembro pública)
[static]
asigna almacenamiento no inicializado usando el asignador
(función miembro estática pública de std::allocator_traits<Alloc> )
asigna memoria
(función miembro pública de std::pmr::memory_resource )