diff --git a/include/linphone/utils/algorithm.h b/include/linphone/utils/algorithm.h index e161ed2b5..2a31d6cb1 100644 --- a/include/linphone/utils/algorithm.h +++ b/include/linphone/utils/algorithm.h @@ -31,27 +31,27 @@ LINPHONE_BEGIN_NAMESPACE template -inline typename T::const_iterator find (const T &container, const Value &value) { +typename T::const_iterator find (const T &container, const Value &value) { return std::find(container.cbegin(), container.cend(), value); } template -inline typename T::iterator find (T &container, const Value &value) { +typename T::iterator find (T &container, const Value &value) { return std::find(container.begin(), container.end(), value); } template -inline typename T::const_iterator findIf (const T &container, Predicate predicate) { +typename T::const_iterator findIf (const T &container, Predicate predicate) { return std::find_if(container.cbegin(), container.cend(), predicate); } template -inline typename T::iterator findIf (T &container, Predicate predicate) { +typename T::iterator findIf (T &container, Predicate predicate) { return std::find_if(container.begin(), container.end(), predicate); } template -inline bool removeFirst (T &container, const Value &value) { +bool removeFirst (T &container, const Value &value) { auto it = find(container, value); if (it != container.end()) { container.erase(it); @@ -60,6 +60,11 @@ inline bool removeFirst (T &container, const Value &value) { return false; } +template +void removeIf (T &container, Predicate predicate) { + std::remove_if(container.begin(), container.end(), predicate); +} + LINPHONE_END_NAMESPACE #endif // ifndef _L_ALGORITHM_H_