C++ named requirements:EmplaceConstructible
Specifies that an object of the type can be constructed from a given set of arguments in uninitialized storage by a given allocator.
Specifies that an object of the type can be constructed from a given set of arguments in uninitialized storage by a given allocator.
Specifies that an object of the type can be constructed from a given set of arguments in uninitialized storage by a given allocator.