Defined in header <memory> template< class InputIt, class Size, class ForwardIt >
ForwardIt uninitialized_copy_n( InputIt first, Size count, ForwardIt d_first); (since C++11)
Copies count elements from a range beginning at first to an uninitialized memory area beginning at d_first as if by.
for ( ; n > 0; ++d_first, (void) ++first, --n)
::new (static_cast<void*>(std::addressof(*d_first)))
typename iterator_traits<ForwardIterator>::value_type(*f