Namespaces
Variants

std::pmr::polymorphic_allocator<T>:: allocate_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 >
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 .

Смотрите также

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