Spec-Zone.ru › C++

std::allocation_result

Определено в заголовке <memory>
template< class Pointer, class SizeType = std::size_t >
struct allocation_result {
    Pointer ptr;
    SizeType count;
};
(с C++23)

Специализации allocation_result возвращаются функцией-членом allocate_at_least соответствующих типов Allocator (например, std::allocator::allocate_at_least) и std::allocator_traits::allocate_at_least.

Каждая специализация allocation_result не имеет базовых классов или объявленных членов, кроме ptr и count, поэтому она подходит для инициализации агрегатов и связывания структур.

Параметры шаблона

Указатель - обычно std::allocator_traits<Alloc>::pointer, где Alloc — тип Allocator
SizeType - обычно std::allocator_traits<Alloc>::size_type, где Alloc — тип Allocator

Члены-объекты

ptr
(C++23)
обычно используется для адреса первого элемента в памяти, выделенной allocate_at_least
(общедоступный член-объект)
count
(C++23)
обычно используется для фактического количества элементов в памяти, выделенной allocate_at_least
(общедоступный член-объект)

Примечания

Pointer и SizeType — указатель на тип объекта, а std::make_unsigned_t<std::ptrdiff_t> (который почти всегда совпадает с std::size_t ) по умолчанию.

Макрокоманда проверки наличия функции Значение Std Функция
__cpp_lib_allocate_at_least 202302L (C++23) Обратная связь о размере в интерфейсе Allocator

Пример

См. также

allocate_at_least
(C++23)
выделяет неинициализированную память размером как минимум на запрошенный размер
(общедоступная функция-член std::allocator<T>)
allocate_at_least
[статический] (C++23)
выделяет память размером как минимум на запрошенный размер с помощью аллокатора
(общедоступная статическая функция-член std::allocator_traits<Alloc>)

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

Spec-Zone.ru

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