[uninitialized.construct.value] (original) (raw)

26 Algorithms library [algorithms]

26.11 Specialized algorithms [specialized.algorithms]

26.11.4 uninitialized_value_construct [uninitialized.construct.value]

template<class NoThrowForwardIterator> constexpr void uninitialized_value_construct(NoThrowForwardIterator first, NoThrowForwardIterator last);

Effects: Equivalent to:for (; first != last; ++first) ::new (voidify(*first)) typename iterator_traits<NoThrowForwardIterator>::value_type();

Effects: Equivalent to:for (; first != last; ++first) ::new (voidify(*first)) remove_reference_t<iter_reference_t<I>>();return first;

template<class NoThrowForwardIterator, class Size> constexpr NoThrowForwardIterator uninitialized_value_construct_n(NoThrowForwardIterator first, Size n);

Effects: Equivalent to:for (; n > 0; (void)++first, --n) ::new (voidify(*first)) typename iterator_traits<NoThrowForwardIterator>::value_type();return first;

Effects: Equivalent to:return uninitialized_value_construct(counted_iterator(first, n), default_sentinel).base();