7#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_TRAITS_IS_PREDICATE_HPP_
8#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_TYPE_TRAITS_IS_PREDICATE_HPP_
13#include "arene/base/stdlib_choice/declval.hpp"
14#include "arene/base/stdlib_choice/enable_if.hpp"
15#include "arene/base/stdlib_choice/integral_constant.hpp"
16#include "arene/base/stdlib_choice/is_convertible.hpp"
17#include "arene/base/type_list/type_list.hpp"
18#include "arene/base/type_traits/is_invocable.hpp"
22namespace is_predicate_detail {
30template <
class F,
class Args,
class =
void>
31class is_predicate_impl :
public std::false_type {};
40template <
class F,
class... Args>
41class is_predicate_impl<
45 is_invocable_v<F, Args...> &&
46 std::is_convertible<invoke_result_t<F, Args...>,
bool>::value &&
47 std::is_convertible<
decltype(!std::declval<invoke_result_t<F, Args...>>()),
bool>::value>>
48 :
public std::true_type {};
62template <
class F,
class...
Args>
Definition array_exceptions_disabled.cpp:11
constexpr bool is_predicate_v
backport for the C++20 predicate concept
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10