std::allocation_result
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <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, поэтому она подходит для агрегатной инициализации и структурной привязки.
Параметры шаблона
| Pointer | — | обычно 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).
| Макрос Тестирования функциональности | Значение | Стандарт | Функциональность |
|---|---|---|---|
__cpp_lib_allocate_at_least |
202302L |
(C++23) | Обратная связь по размеру в интерфейсе аллокатора |
Пример
| Этот раздел не завершён Причина: нет примера |
Смотрите также
(C++23) |
выделяет неинициализированное хранилище как минимум такого же размера, как запрошенный размер (public функция-элемент std::allocator)
|
[static] (C++23) |
выделяет память не менее запрошенного размера с помощью аллокатора (public static функция-элемент std::allocator_traits)
|