diff options
| author | Martin Hořeňovský | 2023-02-10 23:25:41 +0100 |
|---|---|---|
| committer | Martin Hořeňovský | 2023-02-10 23:25:45 +0100 |
| commit | e8ba329b6c66b06c4afd07953020b74c4b0f1a75 (patch) | |
| tree | 10d2a26eeb666669705601f1b090925bb3b248d1 /src | |
| parent | 4aa88299af4d4d7dec18a1b6cf314a4b03d7567c (diff) | |
| download | catch3-e8ba329b6c66b06c4afd07953020b74c4b0f1a75.tar.gz | |
Add support for iterator+sentinel pairs in Contains matcher
Diffstat (limited to 'src')
| -rw-r--r-- | src/catch2/matchers/catch_matchers_contains.hpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/catch2/matchers/catch_matchers_contains.hpp b/src/catch2/matchers/catch_matchers_contains.hpp index e298cab7..877d6924 100644 --- a/src/catch2/matchers/catch_matchers_contains.hpp +++ b/src/catch2/matchers/catch_matchers_contains.hpp @@ -33,13 +33,11 @@ namespace Catch { } template <typename RangeLike> - bool match(RangeLike&& rng) const { - using std::begin; using std::end; - - return end(rng) != std::find_if(begin(rng), end(rng), - [&](auto const& elem) { - return m_eq(elem, m_desired); - }); + bool match( RangeLike&& rng ) const { + for ( auto&& elem : rng ) { + if ( m_eq( elem, m_desired ) ) { return true; } + } + return false; } }; @@ -91,7 +89,7 @@ namespace Catch { /** * Creates a matcher that checks whether a range contains a specific element. * - * Uses `eq` to do the comparisons + * Uses `eq` to do the comparisons, the element is provided on the rhs */ template <typename T, typename Equality> ContainsElementMatcher<T, Equality> Contains(T&& elem, Equality&& eq) { |