Spec-Zone.ru › C++

std::pmr::polymorphic_allocator<T>::allocate_object

template< class U >
[[nodiscard]] U* allocate_object( std::size_t n = 1 );
(с C++20)

Выделяет память для объектов типа U с использованием базовых ресурсов памяти.

Если std::numeric_limits<std::size_t>::max() / sizeof(U) < n, выбрасывает std::bad_array_new_length, в противном случае эквивалентно return static_cast<U*>(allocate_bytes(n * sizeof(U), alignof(U)));.

Параметры

n - количество объектов для выделения памяти

Возвращаемое значение

Указатель на выделенную память.

Примечания

Эта функция была введена для использования с полностью специализированным выделенным ресурсом std::pmr::polymorphic_allocator<>, но она может быть полезна в любой специализации в качестве сокращения, чтобы избежать перепривязки от std::pmr::polymorphic_allocator<T> к std::pmr::polymorphic_allocator<U>.

Поскольку U не выводится, его необходимо указать в качестве параметра шаблона при вызове этой функции.

Исключения

Выбрасывает std::bad_array_new_length если n > std::numeric_limits<std::size_t>::max() / sizeof(U); также могут быть выброшены любые исключения, вызываемые при обращении к resource()->allocate.

См. также

allocate_bytes
(C++20)
выделение сырой выровненной памяти из базового ресурса
(публичный член-функция)
new_object
(C++20)
выделение и построение объекта
(публичный член-функция)
allocate
выделение памяти
(публичный член-функция)
allocate
[статический]
выделение неинициализированного хранилища с использованием выделенного ресурса
(публичная статическая функция-член std::allocator_traits<Alloc>)
allocate
выделение памяти
(публичная функция-член std::pmr::memory_resource)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/polymorphic_allocator/allocate_object

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API