26 #ifndef CARGO_VISIT_FIELDS_HPP
27 #define CARGO_VISIT_FIELDS_HPP
34 template<
int I,
class T,
class F,
typename ... A>
37 static void visit(T& t, F f, A&& ... args)
39 visitImpl<I - 1, T, F, A...>::visit(t, f, std::forward<A>(args)...);
40 f->visit(args..., std::get<I>(t));
44 template<
class T,
class F,
typename ... A>
45 struct visitImpl<0, T, F, A...>
47 static void visit(T& t, F f, A&& ... args)
49 f->visit(args..., std::get<0>(t));
57 template<
class T,
class F,
typename ... A>
60 visitImpl<std::tuple_size<T>::value - 1, T, F, A...>::visit(t, f, std::forward<A>(args)...);
65 #endif // CARGO_VISIT_FIELDS_HPP
void visitFields(T &t, F f, A...args)
Definition: visit-fields.hpp:58