Пространства имён
Варианты
Действия

std::allocator::construct

Материал из cppreference.com
< cpp‎ | memory‎ | allocator
 
 
Динамическое управление памятью
no section name
Ограниченные алгоритмы неинициализированной памяти
no section name
Поддержка сбора мусора
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)
(C++11)(до C++23)



no section name
 
std::allocator
Функции-элементы
(до C++20)
allocator::construct
(до C++20)
(до C++20)
Функции, не являющиеся элементами
 
Определено в заголовочном файле <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, используя глобальный размещающий new.

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

Содержание

[править]Параметры

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

[править]Возвращаемое значение

(нет)

[править]Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

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

[править]Смотрите также

[static]
создаёт объект в выделенном хранилище
(шаблон функции)[править]
создаёт объект по заданному адресу
(шаблон функции)[править]
функции распределения памяти
(функция)[править]
close