diff options
Diffstat (limited to 'src/libs/utils/algorithm.h')
-rw-r--r-- | src/libs/utils/algorithm.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libs/utils/algorithm.h b/src/libs/utils/algorithm.h index 237863c573d..1e821a4bcb0 100644 --- a/src/libs/utils/algorithm.h +++ b/src/libs/utils/algorithm.h @@ -407,6 +407,20 @@ bool allOf(const T &container, F predicate) return std::all_of(std::begin(container), std::end(container), predicate); } +// allOf taking a member function pointer +template<typename T, typename R, typename S> +bool allOf(const T &container, R (S::*predicate)() const) +{ + return std::all_of(std::begin(container), std::end(container), std::mem_fn(predicate)); +} + +// allOf taking a member pointer +template<typename T, typename R, typename S> +bool allOf(const T &container, R S::*member) +{ + return std::all_of(std::begin(container), std::end(container), std::mem_fn(member)); +} + ////////////////// // erase ///////////////// @@ -885,6 +899,8 @@ std::tuple<C, C> partition(const C &container, F predicate) { C hit; C miss; + reserve(hit, container.size()); + reserve(miss, container.size()); auto hitIns = inserter(hit); auto missIns = inserter(miss); for (auto i : container) { |