How do I reverse the order of element types in a tuple type?
How do I reverse the types in a tuple? For example, I want reverse_tuple<std::tuple<int, char, bool>>::type to be std::tuple<bool, char, int> . I tried doing the following but it didn't work. What did I do wrong? #include <type_traits> #include <tuple> template <typename... Ts> struct tuple_reverse; template <typename T, typename... Ts> struct tuple_reverse<std::tuple<T, Ts...>> { using type = typename tuple_reverse< std::tuple< typename tuple_reverse<std::tuple<Ts..., T>>::type > >::type; }; template <typename T> struct tuple_reverse<std::tuple<T>> { using type = std::tuple<T>; }; int main()