std::allocator_traits::construct
Материал из cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
| Определено в заголовочном файле <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() или в размещаемый new (до C++20)std::construct_at() (начиная с C++20)
|
Возвращаемое значение
(нет)
Примечание
Эта функция используется контейнерами стандартной библиотеки при вставке, копировании или перемещении элементов.
Поскольку эта функция обеспечивает автоматический возврат к размещающему new, функция-элемент construct() является необязательным требованием Allocator, начиная с C++11.
Смотрите также
| функции распределения памяти (функция) | |
(до C++20) |
создаёт объект в выделенном хранилище (public функция-элемент std::allocator)
|
(C++20) |
создаёт объект по заданному адресу (шаблон функции) |