Construct a proxy, passing a single argument and possibly a specified allocator to the constructor of the proxied object, where the non-allocator argument is the specified a01 argument if ARG01 is not a specialization of ConstructorProxy, and a01.object() if it is such a specialization. If OBJECT_TYPE is allocator aware and allocator_type is a compatible allocator type, pass allocator to the proxied object's constructor; otherwise ignore allocator. A compilation error will result unless OBJECT_TYPE has a constructor with a signature compatible with OBJECT_TYPE(ARG01&&). Note that, if ARG01 is ConstructorProxy<OBJECT_TYPE>, then these constructors take on the rolls of the extended copy and extended move constructors.
Declared in <bslalg_constructorproxy.h>
template<class ARG01>
ConstructorProxy(
ARG01& a01,
CtorAllocArgT const& allocator);