5#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_ALGORITHM_ANY_OF_HPP_
6#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_ALGORITHM_ANY_OF_HPP_
14#include "arene/base/algorithm/detail/convert_to.hpp"
15#include "arene/base/algorithm/detail/traits.hpp"
16#include "arene/base/compiler_support/cpp14_inline.hpp"
17#include "arene/base/constraints/constraints.hpp"
18#include "arene/base/functional/identity.hpp"
19#include "arene/base/stdlib_choice/declval.hpp"
20#include "arene/base/stdlib_choice/enable_if.hpp"
21#include "arene/base/stdlib_choice/initializer_list.hpp"
22#include "arene/base/stdlib_choice/is_convertible.hpp"
23#include "arene/base/stdlib_choice/iterator_traits.hpp"
24#include "arene/base/stdlib_choice/move.hpp"
25#include "arene/base/type_traits/all_are_same.hpp"
26#include "arene/base/type_traits/is_invocable.hpp"
27#include "arene/base/type_traits/is_predicate.hpp"
28#include "arene/base/type_traits/iterator_category_traits.hpp"
29#include "arene/base/utility/make_subrange.hpp"
35namespace any_of_detail {
53 typename UnaryPredicate,
54 typename Projection = identity,
56 std::enable_if_t<base::is_input_iterator_v<Iterator>>,
57 std::enable_if_t<is_predicate_v<
59 invoke_result_t<Projection&, algorithm_detail::iter_reference_t<Iterator>>>>> =
nullptr>
60 constexpr auto operator()(Iterator begin, Iterator end, UnaryPredicate pred, Projection proj = {})
const noexcept(
61 noexcept(std::declval<Iterator&>() != std::declval<Iterator&>()) &&
62 noexcept(pred(proj(*++std::declval<Iterator&>()))) &&
63 noexcept(make_subrange(std::declval<Iterator&&>(), std::declval<Iterator&&>()))
69 for (
auto const& element : arene::base::make_subrange(std::move(begin), std::move(end))) {
70 if (pred(proj(element))) {
89 std::enable_if_t<base::is_input_iterator_v<Iterator>>,
90 std::enable_if_t<std::is_convertible<algorithm_detail::iter_reference_t<Iterator>,
bool>::value>> =
nullptr>
91 constexpr auto operator()(Iterator begin, Iterator end)
const noexcept(
92 is_nothrow_invocable_v<
96 algorithm_detail::convert_to<
bool>>
102 algorithm_detail::convert_to<
bool>{}
109 constexpr auto operator()(std::initializer_list<
bool>
const values)
const noexcept ->
bool {
110 return (*
this)(values.begin(), values.end());
118 template <
typename... Args, constraints<std::enable_if_t<base::all_are_same_v<
bool, Args...>>> =
nullptr>
119 constexpr auto operator()(Args... args)
const noexcept ->
bool {
120 return (*
this)({args...});
Definition array_exceptions_disabled.cpp:11
ARENE_CPP14_INLINE_VARIABLE(any_of_detail::any_of_fn, any_of)
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10