std::allocation_result
Определён в заголовочном файле <memory> | ||
|---|---|---|
template< class Pointer, class SizeType = std::size_t > struct allocation_result; | (начиная с 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 | указатель типа Pointer, обычно используемый для адреса первого элемента в хранилище, выделенном с помощью allocate_at_least (открытый объект-член) |
|
count | значение типа SizeType, обычно используемое для фактического количества элементов в хранилище, выделенном с помощью allocate_at_least (открытый объект-член) |
Примечания
Pointer и SizeType по умолчанию являются указателем на тип объекта и std::make_unsigned_t<std::ptrdiff_t> (который почти всегда совпадает с std::size_t).
| Макрос проверки поддержки функции | Значение | Стандарт | Функция |
|---|---|---|---|
__cpp_lib_allocate_at_least | 202302L | (C++23) | Обратная связь о размере в интерфейсе Allocator |
Пример
См. также
|
(C++23) | выделяет неинициализированное хранилище размером не меньше запрошенного (открытая функция-член std::allocator<T>) |
|
[static] (C++23) | выделяет хранилище размером не меньше запрошенного с помощью аллокатора (открытая статическая функция-член std::allocator_traits<Alloc>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/allocation_result