The standard library offers several copy-based algorithms. Some of them, like
std::copy or std::uninitialized_copy
are basic building blocks for containers and other data structures. This library
offers move-based functions for those purposes:

The first 3 are move variations of their equivalent copy algorithms, but copy
assignment and copy construction are replaced with move assignment and construction.
The last one has the same behaviour as std::uninitialized_copy
but since several standand library implementations don't play very well with
move_iterators, this version
is a portable version for those willing to use move iterators.