see also std::uninitialized_copy