see std::reverse