12 template<
typename ...T>
using tuple =
typename std::tuple<T...>;
16 template<std::size_t I = 0,
typename F,
typename... T>
17 inline typename std::enable_if<I ==
sizeof...(T),
void>::type
18 apply(
const jle::tuple<T...> &, F)
23 template<std::size_t I = 0,
typename F,
typename... T>
24 inline typename std::enable_if<I <
sizeof...(T),
void>::type
25 apply(
const jle::tuple<T...>& t, F f)
27 f(std::get<I>(t),
sizeof...(T)==I+1);
28 apply<I + 1, F, T...>(t, f);
36 template<
typename ...T>
37 std::ostream& operator<< (std::ostream& os,
const jle::tuple<T...>& t)
40 jle::internal::apply(t, [&os=os](
auto item,
bool last) {
generic namespace
Definition: alarm.cpp:12