fork download
  1. #include <iostream>
  2. #include <type_traits>
  3. #include <vector>
  4.  
  5. class A
  6. {
  7. public:
  8. int a;
  9. int b;
  10. };
  11.  
  12. template<typename T>
  13. struct IsClass
  14. {
  15. enum { Yes = std::is_class<T>::value };
  16. enum { No = !Yes };
  17. };
  18.  
  19. int main(int argc, char* argv[])
  20. {
  21. std::vector<int> v1;
  22. std::vector<A> v2;
  23. auto it1 = v1.begin();
  24. auto it2 = v2.begin();
  25.  
  26. std::cout << IsClass<std::decay<decltype(it1)>::type::value_type>::Yes << std::endl;
  27. std::cout << IsClass<std::decay<decltype(it2)>::type::value_type>::Yes << std::endl;
  28.  
  29. std::cin.get();
  30. return 0;
  31. }
Success #stdin #stdout 0s 2900KB
stdin
Standard input is empty
stdout
0
1