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, pv, v) or
- allocator_traits<A2>::construct(a2, pv, l...)
respectively,
where
pv points to storage
suitable to hold an object of type
U and
a2 of type
A2 is a rebound copy of
the allocator
a passed to
allocate_shared
such that its
value_type is
remove_cv_t<U>.