template<class ForwardIterator>
void uninitialized_default_construct(ForwardIterator first, ForwardIterator last);
for (; first != last; ++first) ::new (voidify(*first)) typename iterator_traits<ForwardIterator>::value_type;
namespace ranges {
template<no-throw-forward-iterator I, no-throw-sentinel<I> S>
requires DefaultConstructible<iter_value_t<I>>
I uninitialized_default_construct(I first, S last);
template<no-throw-forward-range R>
requires DefaultConstructible<iter_value_t<iterator_t<R>>>
safe_iterator_t<R> uninitialized_default_construct(R&& r);
}
for (; first != last; ++first) ::new (voidify(*first)) remove_reference_t<iter_reference_t<I>>; return first;
template<class ForwardIterator, class Size>
ForwardIterator uninitialized_default_construct_n(ForwardIterator first, Size n);
for (; n > 0; (void)++first, --n) ::new (voidify(*first)) typename iterator_traits<ForwardIterator>::value_type; return first;
namespace ranges {
template<no-throw-forward-iterator I>
requires DefaultConstructible<iter_value_t<I>>
I uninitialized_default_construct_n(I first, iter_difference_t<I> n);
}