Commit 643b0a8f authored by Ronan's avatar Ronan

feat(algorithm): add a removeIf helper

parent c9c4ab55
......@@ -31,27 +31,27 @@
LINPHONE_BEGIN_NAMESPACE
template<typename T, typename Value>
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<typename T, typename Value>
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<typename T, typename Predicate>
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<typename T, typename Predicate>
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<typename T, typename Value>
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<typename T, typename Predicate>
void removeIf (T &container, Predicate predicate) {
std::remove_if(container.begin(), container.end(), predicate);
}
LINPHONE_END_NAMESPACE
#endif // ifndef _L_ALGORITHM_H_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment