fork download
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. struct is_pointer_type
  5. {
  6. enum { value = false };
  7. };
  8.  
  9. template <typename T>
  10. struct is_pointer_type<T*>
  11. {
  12. enum { value = true };
  13. };
  14.  
  15. template <typename T>
  16. bool is_pointer(const T&)
  17. {
  18. return is_pointer_type<T>::value;
  19. }
  20.  
  21. class A{};
  22.  
  23. int main()
  24. {
  25. A a;
  26. A* aptr;
  27. std::cout << is_pointer(a) << '\n' << is_pointer(aptr) << '\n';
  28. }
Success #stdin #stdout 0s 2724KB
stdin
Standard input is empty
stdout
0
1