Spec-Zone.ru › C++

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

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 Применяется к Поведение согласно опубликованной версии Правильное поведение
LWG 3038 C++17 allocate мог выделить память неправильного размера вместо этого выбрасывает length_error
LWG 3237 C++17 исключение, выбрасываемое allocate, не соответствовало std::allocator::allocate приведено в соответствие

См. также

allocate_bytes
(C++20)
выделяет сырую выровненную память из нижележащего ресурса
(открытая функция-член)
allocate_object
(C++20)
выделяет сырую память, пригодную для объекта или массива
(открытая функция-член)
new_object
(C++20)
выделяет память и конструирует объект
(открытая функция-член)
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/cpp/memory/polymorphic_allocator/allocate

Spec-Zone.ru

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