Namespaces
Variants

std::pmr::polymorphic_allocator<T>:: allocate

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)
T * allocate ( std:: size_t n ) ;
(начиная с C++17)

Выделяет память для n объектов типа T с использованием базового ресурса памяти. Эквивалентно return static_cast < T * > ( resource ( ) - > allocate ( n * sizeof ( T ) , alignof ( T ) ) ) ; .

Содержание

Параметры

n - количество объектов, для которых выделяется память

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

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

Исключения

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

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3038 C++17 allocate might allocate storage of wrong size throws length_error instead
LWG 3237 C++17 the exception thrown by allocate was inconsistent with std::allocator::allocate made consistent

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

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