[#bsl-allocator-069-construct-0a]
= xref:bsl.adoc[bsl]::xref:bsl/allocator-069.adoc[allocator&lt;Attribute&gt;]::construct
:relfileprefix: ../../
:mrdocs:

Create an object of (template parameter) `ELEMENT&lowbar;TYPE` at the specified `address`, constructed by forwarding the specified `argument1` and the (variable number of) additional specified `arguments` to the corresponding constructor of `ELEMENT&lowbar;TYPE`&period; If `ELEMENT&lowbar;TYPE` supports `bslma`&hyphen;style allocation, this allocator passes itself to the constructor&period; If the constructor throws, the memory at `address` is left in an unspecified state&period; Note that, in C&plus;&plus;03, perfect forwarding is limited such that any lvalue reference in the `arguments` parameter pack is const&hyphen;qualified when forwarded to the `ELEMENT&lowbar;TYPE` constructor&semi; only `argument1` can be forwarded as an unqualified lvalue&period; The behavior is undefined unless `address` refers to a block of sufficient size and properly aligned for objects of `ELEMENT&lowbar;TYPE`&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ELEMENT&lowbar;TYPE,
    class ARG1,
    class&period;&period;&period; ARGS&gt;
void
construct(
    ELEMENT&lowbar;TYPE* address,
    ARG1& argument1,
    ARGS&&&period;&period;&period; arguments);
----


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