diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h index 30a062a45..53e2dc877 100644 --- a/Source/cmAlgorithms.h +++ b/Source/cmAlgorithms.h @@ -81,14 +81,14 @@ private: const std::string m_test; }; -template -BiDirIt cmRotate(BiDirIt first, BiDirIt middle, BiDirIt last) +template +FwdIt cmRotate(FwdIt first, FwdIt middle, FwdIt last) { - typename std::iterator_traits::difference_type dist = - std::distance(first, middle); + typename std::iterator_traits::difference_type dist = + std::distance(middle, last); std::rotate(first, middle, last); - std::advance(last, -dist); - return last; + std::advance(first, dist); + return first; } namespace ContainerAlgorithms {