fork(2) download
  1. #include <iostream>
  2. #include <string>
  3. #include <type_traits>
  4.  
  5. template <typename...>
  6. using void_t = void;
  7.  
  8. template <typename T, typename = void>
  9. struct has_member_type : std::false_type {};
  10.  
  11. template <typename T>
  12. struct has_member_type<T, void_t<typename T::type>> : std::true_type {};
  13.  
  14. struct test
  15. {
  16. using type = int;
  17. };
  18.  
  19. int main()
  20. {
  21. std::cout << has_member_type<test>::value << std::endl;
  22. std::cout << has_member_type<int>::value << std::endl;
  23. return 0;
  24. }
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
1
1