25 namespace tuple_algorithms
31 template<
typename T >
33 std::make_index_sequence< std::tuple_size<T>::value >;
35 template<
typename Predicate >
43 template<
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)... );
52 template<
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))... );
65 template<
typename Predicate >
73 template<
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)... );
82 template<
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))... );
100 template<
typename Tuple,
typename Predicate >
103 all_of( Tuple && tuple, Predicate && predicate )
106 std::forward<Predicate>(predicate),
107 std::forward<Tuple>(tuple),
114 template<
typename Tuple,
typename Predicate >
117 any_of( Tuple && tuple, Predicate && predicate )
120 std::forward<Predicate>(predicate),
121 std::forward<Tuple>(tuple),