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