std::pmr::polymorphic_allocator<T>:: new_object
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
(
C++20/26*
)
|
||||
|
polymorphic_allocator::new_object
(C++20)
|
||||
| Non-member functions | ||||
|
(until C++20)
|
|
template
<
class
U,
class
...
CtorArgs
>
U * new_object ( CtorArgs && ... ctor_args ) ; |
(начиная с C++20) | |
Выделяет память и конструирует объект типа
U
.
Дано
alloc
является
std::
pmr
::
polymorphic_allocator
<
T
>
:
U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...);
эквивалентно
U* p = alloc.allocate_object<U>(); try { alloc.construct(p, std::forward<CtorArgs>(ctor_args)...); } catch (...) { alloc.deallocate_object(p); throw; }
Содержание |
Параметры
| ctor_args | - |
аргументы для передачи конструктору
U
|
Возвращаемое значение
Указатель на выделенный и сконструированный объект.
Примечания
Эта функция была введена для использования с полностью специализированным аллокатором std:: pmr :: polymorphic_allocator <> , но она может быть полезна в любой специализации как сокращение, позволяющее избежать необходимости перепривязки от std:: pmr :: polymorphic_allocator < T > к std:: pmr :: polymorphic_allocator < U > и необходимости отдельного вызова allocate , construct и deallocate .
Поскольку
U
не выводится, он должен быть предоставлен в качестве аргумента шаблона при вызове этой функции.
Исключения
Может генерировать любые исключения, выброшенные при вызове
allocate_object
или конструктором
U
.
Смотрите также
|
(C++20)
|
выделяет выровненную необработанную память из базового ресурса
(публичная функция-член) |
|
(C++20)
|
выделяет необработанную память, подходящую для объекта или массива
(публичная функция-член) |
|
выделяет память
(публичная функция-член) |
|
|
[static]
|
выделяет неинициализированное хранилище с использованием аллокатора
(публичная статическая функция-член
std::allocator_traits<Alloc>
)
|
|
выделяет память
(публичная функция-член
std::pmr::memory_resource
)
|