[#BloombergLP-bslma-ConstructionUtil-make-04]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::xref:BloombergLP/bslma/ConstructionUtil.adoc[ConstructionUtil]::make
:relfileprefix: ../../../
:mrdocs:

Return a default&hyphen;constructed `TARGET&lowbar;TYPE` object&period;

== Synopsis

Declared in `&lt;bslma&lowbar;constructionutil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class TARGET&lowbar;TYPE,
    class ALLOCATOR&gt;
static
TARGET&lowbar;TYPE
make(ALLOCATOR const& allocator);
----

== Description

Return, by value, an object of the specified (template parameter) `TARGET&lowbar;TYPE`, having default value&period; If `allocator` is a `bslma`&hyphen;compatible allocator and `TARGET&lowbar;TYPE` supports `bslma`&hyphen;style allocation, `allocator` is passed to the extended default constructor&semi; otherwise, `allocator` is ignored&period; Note that this method is available only for compilers that reliably implement copy&sol;move elision (i&period;e&period;, RVO) on the returned object&period; This copy&sol;move elision is required starting with C&plus;&plus;17 and is widely implemented, though optional, prior to C&plus;&plus;17&period;

== Return Value

default&hyphen;constructed `TARGET&lowbar;TYPE` object

== Parameters

[cols="1,4"]
|===
| Name| Description
| *allocator*
| allocator supplied to the constructor, if applicable
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
