From 33d555e151f741bb04d63d4c7c99afa2019cdf9a Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sat, 25 Jan 2014 19:09:58 +0000 Subject: [PATCH] moved removeIf from CContainerBase to CSequence because it can't work with non-sequential containers, fixes #106 --- src/blackmisc/containerbase.h | 20 -------------------- src/blackmisc/sequence.h | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/blackmisc/containerbase.h b/src/blackmisc/containerbase.h index b04e172e6..e9558aff0 100644 --- a/src/blackmisc/containerbase.h +++ b/src/blackmisc/containerbase.h @@ -105,26 +105,6 @@ namespace BlackMisc return contains(BlackMisc::Predicates::MemberEqual(key1, value1)); } - /*! - * \brief Remove elements for which a given predicate returns true. - */ - template - void removeIf(Predicate p) - { - std::remove_if(derived().begin(), derived().end(), p); - } - - /*! - * \brief Remove elements matching a particular key/value pair. - * \param key1 A pointer to a member function of T. - * \param value1 Will be compared to the return value of key1. - */ - template - void removeIf(K1 key1, V1 value1) - { - removeIf(BlackMisc::Predicates::MemberEqual(key1, value1)); - } - public: // CValueObject overrides /*! * \copydoc CValueObject::toQVariant() diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index 43388363f..cf76a70f1 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -247,6 +247,26 @@ namespace BlackMisc applyIf([ & ](const T &value) { return value == pattern; }, newValues); } + /*! + * \brief Remove elements for which a given predicate returns true. + */ + template + void removeIf(Predicate p) + { + std::remove_if(begin(), end(), p); + } + + /*! + * \brief Remove elements matching a particular key/value pair. + * \param key1 A pointer to a member function of T. + * \param value1 Will be compared to the return value of key1. + */ + template + void removeIf(K1 key1, V1 value1) + { + removeIf(BlackMisc::Predicates::MemberEqual(key1, value1)); + } + /*! * \brief Replace elements for which a given predicate returns true. */