[#BloombergLP-bslalg-ConstructorProxy-2constructor-0bf]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::xref:BloombergLP/bslalg/ConstructorProxy.adoc[ConstructorProxy]::ConstructorProxy
:relfileprefix: ../../../
:mrdocs:

Construct a proxy, passing a single argument and possibly a specified `allocator` to the constructor of the proxied object, where the non&hyphen;allocator argument is the specified `a01` argument if `ARG01` is not a specialization of `ConstructorProxy`, and `a01&period;object()` if it is such a specialization&period; If `OBJECT&lowbar;TYPE` is allocator aware and `allocator&lowbar;type` is a compatible allocator type, pass `allocator` to the proxied object&apos;s constructor&semi; otherwise ignore `allocator`&period; A compilation error will result unless `OBJECT&lowbar;TYPE` has a constructor with a signature compatible with `OBJECT&lowbar;TYPE(ARG01&amp;&amp;)`&period; Note that, if `ARG01` is `ConstructorProxy&lt;OBJECT&lowbar;TYPE&gt;`, then these constructors take on the rolls of the extended copy and extended move constructors&period;

== Synopsis

Declared in `&lt;bslalg&lowbar;constructorproxy&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ARG01&gt;
ConstructorProxy(
    ARG01& a01,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----


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