Defined in header <memory> | ||
---|---|---|
void construct( pointer p, const_reference val ); | (1) | (until C++11) |
template< class U, class... Args > void construct( U* p, Args&&... args ); | (2) | (since C++11) (deprecated in C++17) (removed in C++20) |
Constructs an object of type T
in allocated uninitialized storage pointed to by p
, using global placement-new.
::new((void*)p) T(val)
.::new((void*)p) U(std::forward<Args>(args)...)
.p | - | pointer to allocated uninitialized storage |
val | - | the value to use as the copy constructor argument |
args... | - | the constructor arguments to use |
(none).
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
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] | constructs an object in the allocated storage (function template) |
(C++20) | creates an object at a given address (function template) |
allocation functions (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/allocator/construct