The std::move and std::move_backward algorithms are complementary algorithms to std::copy and std::copy_backward that move each element from the source range to the destination.
All variants will fall back to a copy when operating with immovable types.