std::allocator<T>::construct
Из ru.cppreference.net
| Определяется в заголовке <memory>
|
||
void construct( pointer p, const_reference val );
|
(1) | (до C++11) |
template< class U, class... Args >
void construct( U* p, Args&&... args );
|
(2) | (начиная с C++11) (устарело в C++17) (удалено в C++20) |
Конструирует объект типа T в выделенном неинициализированном хранилище, на которое указывает p, используя глобальный placement-new.
1) Вызывает
::new((void*)p) T(val).2) Вызывает
::new((void*)p) U(std::forward<Args>(args)...).Параметры
| p | - | указатель на выделенную неинициализированную память |
| val | - | значение для использования в качестве аргумента конструктора копирования |
| args... | - | аргументы конструктора для использования |
Отчеты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 402 | C++98 | if T :: operator new exists, the program might be ill-formed | uses global replacement-new instead |
Смотрите также
|
[static]
|
создает объект в выделенной памяти
(шаблон функции) |
|
(C++20)
|
создает объект по заданному адресу
(шаблон функции) |
|
функции выделения памяти
(функция) |