std::allocator_traits<Alloc>:: construct
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовке
<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>
)
|
|
(C++20)
|
создаёт объект по заданному адресу
(шаблон функции) |