std::allocator_traits::construct
From cppreference.com
< cpplrm; | memorylrm; | allocator traits
Defined in header <memory>
|
||
template< class T, class... Args > static void construct( Alloc& a, T* p, Args&&... args ); |
(since C++11) | |
If possible, constructs an object of type T
in allocated uninitialized storage pointed to by p
, by calling
a.construct(p, std::forward<Args>(args)...)
If the above is not possible (e.g. a
does not have the member function construct()
,), then calls placement-new as
::new (static_cast<void*>(p)) T(std::forward<Args>(args)...)
Parameters
a | - | allocator to use for construction |
args... | - | the constructor arguments to pass to a.construct() or to placement-new
|
Return value
(none)
Notes
This function is used by the standard library containers when inserting, copying, or moving elements.
Because this function provides the automatic fall back to placement new, the member function construct()
is an optional Allocator requirement since C++11.
See also
allocation functions (function) | |
(deprecated in C++17)(removed in C++20) |
constructs an object in allocated storage (public member function of std::allocator ) |