[#BloombergLP-bslma-ConstructionUtil-make-02] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::xref:BloombergLP/bslma/ConstructionUtil.adoc[ConstructionUtil]::make :relfileprefix: ../../../ :mrdocs: `make` overloads == Synopses Declared in `<bslma_constructionutil.h>` Return, by value, an object of the specified (template parameter) `TARGET_TYPE`, having default value. If `allocator` is a `bslma`‐compatible allocator and `TARGET_TYPE` supports `bslma`‐style allocation, `allocator` is passed to the extended default constructor; otherwise, `allocator` is ignored. Note that this method is available only for compilers that reliably implement copy/move elision (i.e., RVO) on the returned object. This copy/move elision is required starting with C++17 and is widely implemented, though optional, prior to C++17. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class TARGET_TYPE, class ALLOCATOR> static TARGET_TYPE xref:BloombergLP/bslma/ConstructionUtil/make-04.adoc[make](ALLOCATOR const& allocator); ---- [.small]#xref:BloombergLP/bslma/ConstructionUtil/make-04.adoc[_» more..._]# Return, by value, an object of the specified (template parameter) `TARGET_TYPE`, constructed by forwarding the specified `argument1` and the (variable number of) additional specified `arguments` to the corresponding constructor of `TARGET_TYPE`. If the specified `allocator` is a bslma‐compatible allocator and `TARGET_TYPE` supports `bslma`‐style allocation, the allocator is passed to the constructor; otherwise, `allocator` is ignored. Note that this method is available only for compilers that reliably implement copy/move elision (i.e., RVO) on the returned object. This copy/move elision is required starting with C++17 and is widely implemented, though optional, prior to C++17. Note that, in C++03, perfect forwarding is limited such that any lvalue reference in the `arguments` parameter pack is const‐qualified when forwarded to the `TARGET_TYPE` constructor; only `argument1` can be forwarded as an unqualified lvalue. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class TARGET_TYPE, class ALLOCATOR, class ARG1, class... ARGS> static TARGET_TYPE xref:BloombergLP/bslma/ConstructionUtil/make-07.adoc[make]( ALLOCATOR const& allocator, ARG1&& argument1, ARGS&&... arguments); ---- [.small]#xref:BloombergLP/bslma/ConstructionUtil/make-07.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#