| 1234567891011121314151617181920212223242526272829 |
- //
- // any_of.h
- // stream
- //
- // Created by Sam Jaffe on 4/2/23.
- //
- #pragma once
- #include <stream/forward.h>
- #include <stream/detail/identity.h>
- #include <stream/detail/invoke.h>
- namespace stream::ranges {
- template <typename It, typename S, typename Pred,
- typename Proj = detail::identity>
- bool any_of(It it, S end, Pred pred, Proj proj = {}) {
- for (; it != end; ++it) {
- if (detail::invoke(pred, *it, proj)) { return true; }
- }
- return false;
- }
- template <typename Stream, typename Pred, typename Proj = detail::identity>
- bool any_of(Stream const & stream, Pred pred, Proj proj = {}) {
- return any_of(stream.begin(), stream.end(), std::ref(pred), std::ref(proj));
- }
- }
|