Пространства имён
Варианты
Действия

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

Материал из cppreference.com
 
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
 
template< class U >
[[nodiscard]] U* allocate_object( std::size_t n = 1 );
(начиная с C++20)

Выделяет хранилище для n объектов типа 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.

[править] Смотрите также

выделяет сырую выровненную память из базового ресурса
(public функция-элемент) [править]
выделяет память и создаёт объект
(public функция-элемент) [править]
выделяет память
(public функция-элемент) [править]
[static]
выделяет неинициализированное хранилище с помощью аллокатора
(public static функция-элемент std::allocator_traits) [править]
выделяет память
(public функция-элемент std::pmr::memory_resource) [править]