Namespaces
Variants

std:: allocation_result

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
Определено в заголовочном файле <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) Обратная связь по размеру в интерфейсе аллокатора

Пример

Смотрите также

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