std::allocator_traits<Alloc>::construct
Определено в заголовке <memory> | ||
|---|---|---|
template< class T, class... Args > static void construct( Alloc& a, T* p, Args&&... args ); |
(с C++11) (до C++20) | |
template< class T, class... Args > static constexpr void construct( Alloc& a, T* p, Args&&... args ); | (с C++20) |
Если возможно, создаёт объект типа T в выделенной неинициализированной памяти, на которую указывает p, вызывая a.construct(p, std::forward<Args>(args)...).
Если это невозможно (например, Alloc не имеет функции-члена construct()), то вызывается
|
| (до C++20) |
|
| (с C++20) |
Параметры
| a | - | используемый для создания аллокатор |
| p | - | указатель на неинициализированную память, в которой будет создан объект типа T |
| args... | - | аргументы конструктора, которые необходимо передать в a.construct() или в placement-new(до C++20)std::construct_at()(с C++20) |
Возвращаемое значение
(ничего)
Примечания
Эта функция используется стандартными библиотечными контейнерами при вставке, копировании или перемещении элементов.
Поскольку эта функция предоставляет автоматический возврат к placement new, функция-член construct() является необязательным требованием для Allocator с C++11.
См. также
| функции выделения памяти (функция) |
|
|
(до C++20) | создаёт объект в выделенной памяти (публичная функция-член std::allocator<T> ) |
|
(C++20) | создаёт объект по заданному адресу (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/allocator_traits/construct