[#bsl-list-054-emplace] = xref:bsl.adoc[bsl]::xref:bsl/list-054.adoc[list]::emplace :relfileprefix: ../../ :mrdocs: Insert a newly constructed `value_type` at the specified `position`. == Synopsis Declared in `<bslstl_list.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... ARGS> xref:bsl/list-054/iterator.adoc[list<VALUE, ALLOCATOR>::iterator] emplace( xref:bsl/list-054/const_iterator.adoc[const_iterator] position, ARGS&&... arguments); ---- == Description The object is constructed by forwarding `get_allocator()` (if required) and the specified (variable number of) `arguments` to the corresponding constructor of `value_type`, and return an iterator providing modifiable access to the newly created and inserted element. If an exception is thrown (other than by the copy constructor, move constructor, assignment operator, or move assignment operator of `value_type`), this method has no effect. This method requires that the (template parameter) `VALUE` be `move‐insertable` into this list and `emplace‐constructible` from `arguments` (see {Requirements on `VALUE`}). The behavior is undefined unless `position` is an iterator in the range `[cbegin() .. cend()]` (both endpoints included). == Return Value iterator to the newly emplaced element == Parameters [cols="1,4"] |=== | Name| Description | *position* | location before which the element is inserted | *arguments* | constructor arguments forwarded to `value_type` |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#