C++ concepts: EmplaceConstructible (since C++11)

From cppreference.com

Specifies that an object of the type can be constructed in uninitialized storage.

[edit] Requirements

The type T is EmplaceConstructible into the Container X from the arguments args if, given

A the allocator type defined as X::allocator_type
m the lvalue of type A obtained from X::get_allocator()
p the pointer of type T* prepared by the container
args zero or more arguments passed to the constructor of T

the following expression is well-formed:

std::allocator_traits<A>::construct(m, p, args);

[edit] See Also

CopyInsertable
MoveInsertable