Пространства имён
Варианты
Действия

std::allocation_result

Материал из cppreference.com
< cpp‎ | memory
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
allocation_result
(C++23)
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
Определено в заголовочном файле <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) Обратная связь по размеру в интерфейсе аллокатора

[править] Пример

[править] Смотрите также

выделяет неинициализированное хранилище как минимум такого же размера, как запрошенный размер
(public функция-элемент std::allocator) [править]
[static] (C++23)
выделяет память не менее запрошенного размера с помощью аллокатора
(public static функция-элемент std::allocator_traits) [править]