Spec-Zone.ru › C++

std::allocator<T>::construct

Определено в заголовке <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, используя глобальный оператор размещения.

1) Вызывает ::new((void*)p) T(val).
2) Вызывает ::new((void*)p) U(std::forward<Args>(args)...).

Параметры

p - указатель на выделенное неинициализированное хранилище
val - значение, используемое в качестве аргумента конструктора копирования
args... - аргументы конструктора для использования

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

(нет)

Отчёты о дефектах

Следующие отчёты о дефектах, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применено к Поведение, как опубликовано Корректное поведение
LWG 402 C++98 если T::operator new существует, программа может быть некорректной используется глобальный оператор размещения вместо него

См. также

construct
[статический]
создаёт объект в выделенном хранилище
(шаблон функции)
construct_at
(C++20)
создаёт объект по заданному адресу
(шаблон функции)
operator newoperator new[]
функции выделения памяти
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/allocator/construct

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API