fork(5) download
  1. #include <type_traits>
  2.  
  3. template <typename T, typename... Ts> struct get_index;
  4.  
  5. template <typename T, typename... Ts>
  6. struct get_index<T, T, Ts...> : std::integral_constant<std::size_t, 0> {};
  7.  
  8. template <typename T, typename Tail, typename... Ts>
  9. struct get_index<T, Tail, Ts...> :
  10. std::integral_constant<std::size_t, 1 + get_index<T, Ts...>::value> {};
  11.  
  12. static_assert(0 == get_index<char, char, int, void>::value, "");
  13. static_assert(1 == get_index<int, char, int, void>::value, "");
  14. static_assert(2 == get_index<void, char, int, void>::value, "");
  15.  
  16. int main()
  17. {}
  18.  
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
Standard output is empty