Namespaces
Variants

std::scoped_allocator_adaptor<OuterAlloc,InnerAlloc...>:: scoped_allocator_adaptor

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)
Определено в заголовочном файле <scoped_allocator>
scoped_allocator_adaptor ( ) ;
(1) (начиная с C++11)
template < class OuterA2 >

scoped_allocator_adaptor (
OuterA2 && outerAlloc, const InnerAllocs & ... innerAllocs

) noexcept ;
(2) (начиная с C++11)
scoped_allocator_adaptor (

const scoped_allocator_adaptor & other

) noexcept ;
(3) (начиная с C++11)
scoped_allocator_adaptor (

scoped_allocator_adaptor && other

) noexcept ;
(4) (начиная с C++11)
template < class OuterA2 >

scoped_allocator_adaptor (
const scoped_allocator_adaptor < OuterA2, InnerAllocs... > & other

) noexcept ;
(5) (начиная с C++11)
template < class OuterA2 >

scoped_allocator_adaptor (
scoped_allocator_adaptor < OuterA2, InnerAllocs... > && other

) noexcept ;
(6) (начиная с C++11)
1) Конструктор по умолчанию: инициализирует значением базовый класс OuterAlloc и объект-член внутреннего аллокатора, если он используется реализацией.
2) Конструирует базовый класс OuterAlloc из std:: forward < OuterA2 > ( outerAlloc ) , и внутренние аллокаторы с помощью innerAllocs... . Эта перегрузка участвует в разрешении перегрузки только если std:: is_constructible < OuterAlloc, OuterA2 > :: value равно true .
3) Конструктор копирования: инициализирует каждый аллокатор из соответствующего аллокатора other .
4) Конструктор перемещения: перемещает каждый аллокатор из соответствующего аллокатора other в * this .
5) Инициализирует каждый аллокатор из соответствующего аллокатора other . Эта перегрузка участвует в разрешении перегрузки только если std:: is_constructible < OuterAlloc, const OuterA2 & > :: value равно true .
6) Инициализирует каждый аллокатор из соответствующего аллокатора other , используя семантику перемещения. Эта перегрузка участвует в разрешении перегрузки только если std:: is_constructible < OuterAlloc, OuterA2 > :: value равно true .

Параметры

outerAlloc - аргумент конструктора для внешнего аллокатора
innerAllocs... - аргументы конструктора для внутренних аллокаторов
other - другой std::scoped_allocator_adaptor

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 2782 C++11 конструкторы, принимающие OuterA2 не были ограничены, что мешало метапрограммированию ограничение добавлено

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

выделяет неинициализированную память с использованием внешнего аллокатора
(публичная функция-член)
создает объект в выделенной памяти, передавая внутренний аллокатор его конструктору, если это уместно
(публичная функция-член)