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 |
Пример
См. также
|
(C++23) | выделяет неинициализированную память размером как минимум на запрошенный размер (общедоступная функция-член std::allocator<T>) |
|
[статический] (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