When a (sub)object of a non-array type
U is specified to have
an initial value of
v, or
U(l...),
where
l... is a list of constructor arguments,
allocate_shared shall initialize this (sub)object
via the expression
- allocator_traits<A2>::construct(a2, pu, v) or
- allocator_traits<A2>::construct(a2, pu, l...)
respectively,
where
pu is a pointer of type
remove_cv_t<U>*
pointing to storage
suitable to hold an object of type
remove_cv_t<U> and
a2 of type
A2 is a potentially rebound copy of
the allocator
a passed to
allocate_shared.