diff --git a/src/libs/utils/algorithm.h b/src/libs/utils/algorithm.h index ac4bd49bc83..fef4e07013d 100644 --- a/src/libs/utils/algorithm.h +++ b/src/libs/utils/algorithm.h @@ -161,18 +161,6 @@ typename T::element_type *findOr(const C &container, typename T::elem return findOr(container, other, std::mem_fn(function)); } -template -int indexOf(const T &container, F function) -{ - typename T::const_iterator begin = std::begin(container); - typename T::const_iterator end = std::end(container); - - typename T::const_iterator it = std::find_if(begin, end, function); - if (it == end) - return -1; - return it - begin; -} - template typename T::value_type findOrDefault(const T &container, F function) { @@ -202,6 +190,22 @@ typename T::element_type *findOrDefault(const C &container, R (S::*fu } +////////////////// +// index of: +////////////////// + +template +Q_REQUIRED_RESULT +int indexOf(const C& container, F function) +{ + typename C::const_iterator begin = std::begin(container); + typename C::const_iterator end = std::end(container); + + typename C::const_iterator it = std::find_if(begin, end, function); + return it == end ? -1 : std::distance(begin, it); +} + + ////////////////// // max element //////////////////