Namespaces
Variants
Views
Actions

std::allocator_traits::construct

From cppreference.com
< cpp‎ | memory‎ | allocator traits
Revision as of 16:47, 2 November 2012 by P12bot (Talk | contribs)

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)...)

Contents

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

Template:cpp/memory/new/dcl list operator newTemplate:cpp/memory/allocator/dcl list construct