Класс scoped_allocator_adaptor
Представляет гнездй allocators.
template<class Outer, class... Inner>
class scoped_allocator_adaptor;
Заметки
Класс-шаблон инкапсулирует гнездй одного или нескольких allocators.Каждый такой класс имеет внешней распределитель типа outer_allocator_type, синонима для Outer, открытое каждого объекта scoped_allocator_adaptor.Outer используется для выделения памяти, который будет использовать контейнер.Можно получить ссылку на этот базовый объект выделения, вызвав outer_allocator.
Остаток гнездя имеет тип inner_allocator_type.Внутренний распределитель используемый для выделения памяти для элементов в контейнере.Можно получить ссылку на сохраненные объект данного типа путем вызова inner_allocator.Если Inner... не пусто, то inner_allocator_type имеет тип scoped_allocator_adaptor<Inner...> и inner_allocator назначает объект элемента.В противном случае - значение inner_allocator_type имеет тип scoped_allocator_adaptor<Outer> и inner_allocator обозначает весь объект.
Гнездй ведет себя так, как если бы оно имеет произвольную глубину, копирование его самый внутренний инкапсулированный выделения по мере необходимости.
Ряд понятий, которые не являются частью видимой помощью интерфейса в описание поведение этого класса шаблона.Внешнего выделения является посредником при все вызовы конструктора и уничтожает методы.Она эффективно определяются рекурсивной функции OUTERMOST(X), где OUTERMOST(X) одно из следующих действий.
Если X.outer_allocator() правильно сформировано, OUTERMOST(X)OUTERMOST(X.outer_allocator()).
В противном случае OUTERMOST(X) является X.
3 Типа указаны ради экспозиция:
Тип |
Описание |
---|---|
Outermost |
Тип OUTERMOST(*this). |
Outermost_traits |
allocator_traits<Outermost> |
Outer_traits |
allocator_traits<Outer> |
Конструкторы
Имя |
Описание |
---|---|
Конструктор scoped_allocator_adaptor::scoped_allocator_adaptor |
Создает объект scoped_allocator_adaptor. |
Определения типов
Имя |
Описание |
---|---|
const_pointer |
Этот тип является синонимом для const_pointer, связанный с Outer выделения. |
const_void_pointer |
Этот тип является синонимом для const_void_pointer, связанный с Outer выделения. |
difference_type |
Этот тип является синонимом для difference_type, связанный с Outer выделения. |
inner_allocator_type |
Этот тип является синонимом для типа вложенных основная scoped_allocator_adaptor<Inner...>. |
outer_allocator_type |
Этот тип является синонимом для типа базового механизма распределения Outer. |
pointer |
Этот тип является синонимом для pointer, связанного с Outer выделения. |
propagate_on_container_copy_assignment |
Тип выполняются, только если Outer_traits::propagate_on_container_copy_assignment содержит владения true или inner_allocator_type::propagate_on_container_copy_assignment true. |
propagate_on_container_move_assignment |
Тип выполняются, только если Outer_traits::propagate_on_container_move_assignment содержит владения true или inner_allocator_type::propagate_on_container_move_assignment true. |
propagate_on_container_swap |
Тип выполняются, только если Outer_traits::propagate_on_container_swap содержит владения true или inner_allocator_type::propagate_on_container_swap true. |
size_type |
Этот тип является синонимом для size_type, связанного с Outer выделения. |
value_type |
Этот тип является синонимом для value_type, связанного с Outer выделения. |
void_pointer |
Этот тип является синонимом для void_pointer, связанного с Outer выделения. |
Структуры
Имя |
Описание |
---|---|
Указывает тип Outer::rebind<Other>::other как синоним для scoped_allocator_adaptor<Other, Inner...>. |
Методы
Имя |
Описание |
---|---|
Выделяет память с помощью механизма распределения Outer. |
|
Создает объект. |
|
Объекты отмены выделения с помощью внешнего механизма распределения. |
|
Удаляет указанный объект. |
|
Извлекает ссылку к хранимому объект типа inner_allocator_type. |
|
Указывает максимальное количество объектов, которые могут быть выбраны внешним выделения. |
|
Извлекает ссылку к хранимому объект типа outer_allocator_type. |
|
Метод scoped_allocator_adaptor::select_on_container_copy_construction |
Создает новый объект scoped_allocator_adaptor с контекстными, сохраненный объект выделения инициализированный вызовом select_on_container_copy_construction для каждого соответствующего механизма распределения. |
Требования
заголовок: <scoped_allocator>
std пространство имен: