Spec-Zone.ru › C++

std::pmr::memory_resource::allocate

void* allocate( std::size_t bytes,
                std::size_t alignment = alignof(std::max_align_t) );
(с C++17)
(до C++20)
[[nodiscard]] void* allocate( std::size_t bytes,
                              std::size_t alignment = alignof(std::max_align_t) );
(с C++20)

Выделяет память размером не менее bytes байт, выровненной по указанному alignment.

Эквивалентно return do_allocate(bytes, alignment);.

Исключение

Выбрасывает исключение, если память запрошенного размера и выравнивания получить не удаётся.

Отчеты об ошибках

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

DR Применимо к Поведение, как опубликовано Корректное поведение
LWG 2843 ??? Неподдерживалось чрезмерное выравнивание Выравнивание должно соблюдаться

См. также

do_allocate
[виртуальный]
выделяет память
(виртуальная закрытая функция-член)

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

Spec-Zone.ru

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