25namespace tuple_algorithms
33 std::make_index_sequence< std::tuple_size<T>::value >;
35template<
typename Predicate >
43template<
typename Predicate,
typename T,
typename... Vs >
48 return p( std::forward<T>(current) ) &&
49 all_of_impl( std::forward<Predicate>(p), std::forward<Vs>(rest)... );
52template<
typename Predicate,
typename Tuple, std::size_t... I >
58 std::index_sequence<I...> )
61 std::forward<Predicate>(p),
62 std::get<I>(std::forward<Tuple>(t))... );
65template<
typename Predicate >
73template<
typename Predicate,
typename T,
typename... Vs >
78 return p( std::forward<T>(current) ) ||
79 any_of_impl( std::forward<Predicate>(p), std::forward<Vs>(rest)... );
82template<
typename Predicate,
typename Tuple, std::size_t... I >
88 std::index_sequence<I...> )
91 std::forward<Predicate>(p),
92 std::get<I>(std::forward<Tuple>(t))... );
100template<
typename Tuple,
typename Predicate >
103all_of( Tuple && tuple, Predicate && predicate )
106 std::forward<Predicate>(predicate),
107 std::forward<Tuple>(tuple),
114template<
typename Tuple,
typename Predicate >
117any_of( Tuple && tuple, Predicate && predicate )
120 std::forward<Predicate>(predicate),
121 std::forward<Tuple>(tuple),
Detection of compiler version and absence of various features.
#define RESTINIO_NODISCARD
std::make_index_sequence< std::tuple_size< T >::value > index_sequence_for_tuple
RESTINIO_NODISCARD bool perform_any_of(Predicate &&p, Tuple &&t, std::index_sequence< I... >)
RESTINIO_NODISCARD bool perform_all_of(Predicate &&p, Tuple &&t, std::index_sequence< I... >)
RESTINIO_NODISCARD bool all_of_impl(Predicate &&)
RESTINIO_NODISCARD bool any_of_impl(Predicate &&)
RESTINIO_NODISCARD bool all_of(Tuple &&tuple, Predicate &&predicate)
RESTINIO_NODISCARD bool any_of(Tuple &&tuple, Predicate &&predicate)