How to get the index of a type in a variadic type pack?
问题 For example template<typename T, typename... Ts> struct Index { enum {value = ???} }; and assume T is one of Ts and Ts has different types, like Index<int, int, double>::value is 0 Index<double, int, double>::value is 1 回答1: #include <type_traits> #include <cstddef> template <typename T, typename... Ts> struct Index; template <typename T, typename... Ts> struct Index<T, T, Ts...> : std::integral_constant<std::size_t, 0> {}; template <typename T, typename U, typename... Ts> struct Index<T, U,