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

Constructors

== Synopses

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

Construct a proxy, passing no arguments except possibly a specified `allocator` to the constructor of the proxied object&period; If `OBJECT&lowbar;TYPE` is allocator aware and `allocator&lowbar;type` is a compatible allocator type, pass `allocator` to the proxied object constructor&semi; otherwise ignore `allocator`&period; A compilation error will result unless `OBJECT&lowbar;TYPE` has an (extended) default constructor&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0d3f.adoc[ConstructorProxy](xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0d3f.adoc[_» more&period;&period;&period;_]#

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;


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

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0bf.adoc[_» more&period;&period;&period;_]#

Same as the preceding constructor, for rvalue `a01`&period;


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

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-09.adoc[_» more&period;&period;&period;_]#

Construct a proxy, forwarding the specified `a01` up to the specified `a14` arguments and possibly a specified `allocator` to the constructor of the proxied object&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;, ARG2&amp;&amp;, &period;&period;&period;)`&period; Note that, in C&plus;&plus;03, non&hyphen;const lvalue arguments will be forwarded as `const` lvalue references&period;


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

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-018.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


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

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-07b.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0ba.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0ba.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-08.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-08.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-073.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-073.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0c.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0c.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07,
    class ARG08&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-06f.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    ARG08&& a08,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-06f.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07,
    class ARG08,
    class ARG09&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0de.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    ARG08&& a08,
    ARG09&& a09,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0de.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07,
    class ARG08,
    class ARG09,
    class ARG10&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-017.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    ARG08&& a08,
    ARG09&& a09,
    ARG10&& a10,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-017.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07,
    class ARG08,
    class ARG09,
    class ARG10,
    class ARG11&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0d3a.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    ARG08&& a08,
    ARG09&& a09,
    ARG10&& a10,
    ARG11&& a11,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0d3a.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07,
    class ARG08,
    class ARG09,
    class ARG10,
    class ARG11,
    class ARG12&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-065.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    ARG08&& a08,
    ARG09&& a09,
    ARG10&& a10,
    ARG11&& a11,
    ARG12&& a12,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-065.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07,
    class ARG08,
    class ARG09,
    class ARG10,
    class ARG11,
    class ARG12,
    class ARG13&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0a.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    ARG08&& a08,
    ARG09&& a09,
    ARG10&& a10,
    ARG11&& a11,
    ARG12&& a12,
    ARG13&& a13,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0a.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ARG01,
    class ARG02,
    class ARG03,
    class ARG04,
    class ARG05,
    class ARG06,
    class ARG07,
    class ARG08,
    class ARG09,
    class ARG10,
    class ARG11,
    class ARG12,
    class ARG13,
    class ARG14&gt;
xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0bb.adoc[ConstructorProxy](
    ARG01&& a01,
    ARG02&& a02,
    ARG03&& a03,
    ARG04&& a04,
    ARG05&& a05,
    ARG06&& a06,
    ARG07&& a07,
    ARG08&& a08,
    ARG09&& a09,
    ARG10&& a10,
    ARG11&& a11,
    ARG12&& a12,
    ARG13&& a13,
    ARG14&& a14,
    xref:BloombergLP/bslalg/ConstructorProxy.adoc[CtorAllocArgT] const& allocator);
----

[.small]#xref:BloombergLP/bslalg/ConstructorProxy/2constructor-0bb.adoc[_» more&period;&period;&period;_]#


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