Namespaces
Variants

std::allocator_traits<Alloc>:: construct

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 T, class ... Args >
static void construct ( Alloc & a, T * p, Args && ... args ) ;
(начиная с C++11)
(constexpr начиная с C++20)

Если возможно, создаёт объект типа T в выделенной неинициализированной памяти, на которую указывает p , вызывая a. construct ( p, std:: forward < Args > ( args ) ... ) .

Если вышеуказанное невозможно (например, Alloc не имеет функцию-член construct() ), тогда вызывается

:: new ( static_cast < void * > ( p ) ) T ( std:: forward < Args > ( args ) ... )

(до C++20)

std:: construct_at ( p, std:: forward < Args > ( args ) ... )

(начиная с C++20)

Содержание

Параметры

a - аллокатор, используемый для конструирования
p - указатель на неинициализированную память, на которой будет сконструирован объект T
args... - аргументы конструктора, передаваемые в a. construct ( ) или в placement-new (до C++20) std::construct_at() (начиная с C++20)

Возвращаемое значение

(нет)

Примечания

Эта функция используется стандартными библиотечными контейнерами при вставке, копировании или перемещении элементов.

Поскольку эта функция обеспечивает автоматический переход к размещающему new, функция-член construct() является опциональным Allocator требованием начиная с C++11.

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

функции выделения памяти
(функция)
(до C++20)
создаёт объект в выделенной памяти
(публичная функция-член std::allocator<T> )
создаёт объект по заданному адресу
(шаблон функции)