| 
| struct   | vcsn::detail::index_sequence<... > | 
|   | A static list of size_t.  More...
  | 
|   | 
| struct   | vcsn::detail::concat< S1, S2 > | 
|   | Concat two sequences of size_t, adding the size of the first.  More...
  | 
|   | 
| struct   | vcsn::detail::concat< index_sequence< I1... >, index_sequence< I2... > > | 
|   | 
| struct   | vcsn::detail::make_index_sequence< N > | 
|   | Build the static sequence of size_t [0, N[.  More...
  | 
|   | 
| struct   | vcsn::detail::make_index_sequence< N > | 
|   | Build the static sequence of size_t [0, N[.  More...
  | 
|   | 
| struct   | vcsn::detail::make_index_sequence< 0 > | 
|   | 
| struct   | vcsn::detail::make_index_sequence< 1 > | 
|   | 
| struct   | vcsn::detail::int_range< off, S2 > | 
|   | 
| struct   | vcsn::detail::int_range< off, index_sequence< I... > > | 
|   | 
| struct   | vcsn::detail::make_index_range_impl< S, L > | 
|   | A static range.  More...
  | 
|   | 
| struct   | vcsn::detail::make_index_range_impl< S, 0 > | 
|   | 
| struct   | vcsn::detail::make_index_range_impl< S, -1U > | 
|   | 
| struct   | vcsn::detail::make_index_range< S, E > | 
|   | A static range.  More...
  | 
|   | 
| struct   | vcsn::detail::concat_index_sequence< S1, S2 > | 
|   | Concatenate two static sequences of size_t.  More...
  | 
|   | 
| struct   | vcsn::detail::concat_index_sequence< index_sequence< I1... >, index_sequence< I2... > > | 
|   | 
| struct   | vcsn::detail::index_sequence_difference< S1, S2 > | 
|   | The list containing all the elements of I1 (contiguous sequence from 0 to N) not present in I2 (arbitrary sequence, sorted).  More...
  | 
|   | 
| struct   | vcsn::detail::index_sequence_difference< index_sequence< I1_1, I1... >, index_sequence< I1_1, I2... > > | 
|   | 
| struct   | vcsn::detail::index_sequence_difference< index_sequence< I1_1, I1... >, index_sequence< I2_1, I2... > > | 
|   | 
| struct   | vcsn::detail::index_sequence_difference< index_sequence< I1_1, I1... >, index_sequence<> > | 
|   | 
| struct   | vcsn::detail::index_sequence_difference< index_sequence<>, index_sequence<> > | 
|   | 
| struct   | vcsn::detail::tuple_printer< Tuple, N > | 
|   | 
| struct   | vcsn::detail::tuple_printer< Tuple, 1 > | 
|   | 
| struct   | vcsn::detail::if_c< c, T1, T2 > | 
|   | 
| struct   | vcsn::detail::if_c< false, T1, T2 > | 
|   | 
| struct   | vcsn::detail::if_< C, T1, T2 > | 
|   | 
| struct   | vcsn::detail::eval_if_c< c, F1, F2 > | 
|   | Test if (c) then F1 else F2 and get the value.  More...
  | 
|   | 
| struct   | vcsn::detail::eval_if< C, F1, F2 > | 
|   | 
| struct   | vcsn::detail::and_< F > | 
|   | And condition on several typenames.  More...
  | 
|   | 
| struct   | vcsn::detail::and_< F1, F... > | 
|   | 
| struct   | vcsn::detail::and_< F1 > | 
|   | 
| struct   | vcsn::detail::and_<> | 
|   | 
| struct   | vcsn::detail::or_< F > | 
|   | Or condition on several typenames.  More...
  | 
|   | 
| struct   | vcsn::detail::or_< F1, F... > | 
|   | 
| struct   | vcsn::detail::or_< F1 > | 
|   | 
| struct   | vcsn::detail::or_<> | 
|   | 
| struct   | vcsn::any | 
|   | Whether some of the values evaluate as true.  More...
  | 
|   | 
| struct   | std::hash< std::tuple< Elements... > > | 
|   | 
 | 
| template<size_t I, typename T >  | 
| using  | vcsn::tuple_element_t = typename std::tuple_element< I, T >::type | 
|   | C++14.  More...
  | 
|   | 
| template<typename S1 , typename S2 >  | 
| using  | vcsn::detail::concat_t = typename concat< S1, S2 >::type | 
|   | 
| template<std::size_t N>  | 
| using  | vcsn::detail::make_index_sequence_t = typename make_index_sequence< N >::type | 
|   | 
| template<std::size_t S, std::size_t E>  | 
| using  | vcsn::detail::make_index_range_t = typename make_index_range< S, E >::type | 
|   | 
| template<typename S1 , typename S2 >  | 
| using  | vcsn::detail::concat_sequence = typename concat_index_sequence< S1, S2 >::type | 
|   | 
| template<typename S1 , typename S2 >  | 
| using  | vcsn::detail::sequence_difference = typename index_sequence_difference< typename S1::type, typename S2::type >::type | 
|   | 
| template<std::size_t N, std::size_t Gap>  | 
| using  | vcsn::detail::punched_sequence = concat_sequence< make_index_range_t< 0, Gap >, make_index_range_t< Gap+1, N > > | 
|   | An index sequence with a gap.  More...
  | 
|   | 
 | 
| template<typename Fun , typename... Ts>  | 
| void  | vcsn::detail::for_ (const std::tuple< Ts... > &ts, Fun f) | 
|   | Run function f on each member of ts.  More...
  | 
|   | 
| template<typename Fun , typename... Ts, size_t... I>  | 
| void  | vcsn::detail::for_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >) | 
|   | 
| template<typename Fun , typename... Ts>  | 
| auto  | vcsn::detail::map (const std::tuple< Ts... > &ts, Fun f) -> decltype(map_tuple_(f, ts, make_index_sequence< sizeof...(Ts)>())) | 
|   | Map a function on a tuple, return tuple of the results.  More...
  | 
|   | 
| template<typename Fun , typename... Ts, size_t... I>  | 
| auto  | vcsn::detail::map_impl_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >) | 
|   | 
| template<typename Fun , typename... Args>  | 
| auto  | vcsn::detail::apply (Fun f, const std::tuple< Args... > &args) -> decltype(apply_impl_(f, args, make_index_sequence< sizeof...(Args)>())) | 
|   | Unpack a tuple, and pass its content as argument to a funtion.  More...
  | 
|   | 
| template<typename Fun , typename... Args, size_t... I>  | 
| auto  | vcsn::detail::apply_impl_ (Fun f, const std::tuple< Args... > &args, index_sequence< I... >) -> decltype(f(std::get< I >(args)...)) | 
|   | 
| template<typename... Funs, typename... Args>  | 
| auto  | vcsn::detail::apply (const std::tuple< Funs... > &funs, const std::tuple< Args... > &args) | 
|   | Apply a tuple of functions on a tuple of arguments, return the tuple of results.  More...
  | 
|   | 
| template<typename... Funs, typename... Args, size_t... I>  | 
| auto  | vcsn::detail::apply_impl_ (const std::tuple< Funs... > &funs, const std::tuple< Args... > &args, index_sequence< I... >) | 
|   | Apply a tuple of functions on a tuple of arguments, return the tuple of results.  More...
  | 
|   | 
| template<typename Fun , typename... Objs, typename... Args>  | 
| auto  | vcsn::detail::apply (Fun fun, const std::tuple< Objs... > &objs, const std::tuple< Args... > &args) | 
|   | Apply a tuple of member functions on a tuple of arguments, return the tuple of results.  More...
  | 
|   | 
| template<typename Fun , typename... Objs, typename... Args, size_t... I>  | 
| auto  | vcsn::detail::apply_impl_ (Fun fun, const std::tuple< Objs... > &objs, const std::tuple< Args... > &args, index_sequence< I... >) | 
|   | 
| template<typename Fun >  | 
| void  | vcsn::detail::cross (Fun f) | 
|   | Variadic Cartesian product of containers.  More...
  | 
|   | 
| template<typename Fun , typename Cont , typename... Conts>  | 
| void  | vcsn::detail::cross (Fun f, const Cont &head, const Conts &... tails) | 
|   | 
| template<typename Fun , typename... Ts, size_t... I>  | 
| void  | vcsn::detail::cross_tuple_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >) | 
|   | 
| template<typename Fun , typename... Ts>  | 
| void  | vcsn::detail::cross_tuple (Fun f, const std::tuple< Ts... > &ts) | 
|   | 
| template<typename... Ts>  | 
| auto  | vcsn::detail::reverse_tuple (const std::tuple< Ts... > &t) -> decltype(reverse_tuple(t, make_index_sequence< sizeof...(Ts)>())) | 
|   | 
| template<typename... Ts, std::size_t... I>  | 
| auto  | vcsn::detail::reverse_tuple (const std::tuple< Ts... > &t, index_sequence< I... >) -> decltype(std::make_tuple(std::get< sizeof...(Ts) - 1 - I >(t)...)) | 
|   | 
| template<typename... Ts>  | 
| auto  | vcsn::detail::make_gcc_tuple (Ts &&... ts) -> decltype(reverse_tuple(std::make_tuple(std::forward< Ts >(ts)...))) | 
|   | Same as make_tuple, unless the evaluation of arguments if right-to-left, in which case reverse the result.  More...
  | 
|   | 
| template<typename... Args>  | 
| std::ostream &  | vcsn::detail::print (const std::tuple< Args... > &args, std::ostream &o) | 
|   | 
| template<bool... B>  | 
| constexpr bool  | vcsn::any_ () | 
|   | Static evaluation of the 'or' of the template parameters.  More...
  | 
|   | 
| template<bool... B>  | 
| constexpr bool  | vcsn::all_ () | 
|   | 
| template<typename... Bool>  | 
| bool  | vcsn::all (Bool &&... values) | 
|   | Whether all the values evaluate as true.  More...
  | 
|   |