libMesh
tuple_of.h
Go to the documentation of this file.
1 #ifndef LIBMESH_TUPLE_OF_H
2 #define LIBMESH_TUPLE_OF_H
3 
4 #include <tuple>
5 
6 namespace libMesh
7 {
8 
9 // Recursive tuple scheme
10 template <size_t I, typename T>
11 struct tuple_n
12 {
13  template< typename...Args> using type = typename tuple_n<I-1, T>::template type<T, Args...>;
14 };
15 
16 template <typename T>
17 struct tuple_n<0, T>
18 {
19  template<typename...Args> using type = std::tuple<Args...>;
20 };
21 template <size_t I, typename T> using tuple_of = typename tuple_n<I,T>::template type<>;
22 
23 }
24 
25 #endif
The libMesh namespace provides an interface to certain functionality in the library.
typename tuple_n< I-1, T >::template type< T, Args... > type
Definition: tuple_of.h:13
typename tuple_n< I, T >::template type<> tuple_of
Definition: tuple_of.h:21
std::tuple< Args... > type
Definition: tuple_of.h:19