Поделиться через


Класс 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>

Hh972427.collapse_all(ru-ru,VS.110).gifКонструкторы

Имя

Описание

Конструктор scoped_allocator_adaptor::scoped_allocator_adaptor

Создает объект scoped_allocator_adaptor.

Hh972427.collapse_all(ru-ru,VS.110).gifОпределения типов

Имя

Описание

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 выделения.

Hh972427.collapse_all(ru-ru,VS.110).gifСтруктуры

Имя

Описание

Структура scoped_allocator_adaptor::rebind

Указывает тип Outer::rebind<Other>::other как синоним для scoped_allocator_adaptor<Other, Inner...>.

Hh972427.collapse_all(ru-ru,VS.110).gifМетоды

Имя

Описание

Метод scoped_allocator_adaptor::allocate

Выделяет память с помощью механизма распределения Outer.

Метод scoped_allocator_adaptor::construct

Создает объект.

Метод scoped_allocator_adaptor::deallocate

Объекты отмены выделения с помощью внешнего механизма распределения.

Метод scoped_allocator_adaptor::destroy

Удаляет указанный объект.

Метод scoped_allocator_adaptor::inner_allocator

Извлекает ссылку к хранимому объект типа inner_allocator_type.

Метод scoped_allocator_adaptor::max_size

Указывает максимальное количество объектов, которые могут быть выбраны внешним выделения.

Метод scoped_allocator_adaptor::outer_allocator

Извлекает ссылку к хранимому объект типа outer_allocator_type.

Метод scoped_allocator_adaptor::select_on_container_copy_construction

Создает новый объект scoped_allocator_adaptor с контекстными, сохраненный объект выделения инициализированный вызовом select_on_container_copy_construction для каждого соответствующего механизма распределения.

Требования

заголовок: <scoped_allocator>

std пространство имен:

См. также

Другие ресурсы

Файлы заголовков