Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. template<typename T>
  4. struct is_ptr
  5. {
  6. static const bool value = false;
  7. };
  8.  
  9. template<typename T>
  10. struct is_ptr<T*>
  11. {
  12. static const bool value = true;
  13. };
  14.  
  15. template<typename T>
  16. struct remove_ptr
  17. {
  18. //typedef T value_type;
  19. T value_type;
  20. };
  21.  
  22. template<typename T>
  23. struct remove_ptr<T*>
  24. {
  25. typedef T value_type;
  26. //T value_type;
  27. };
  28.  
  29. struct STATIC_ASSERT{
  30. STATIC_ASSERT(bool val): v(val){
  31. }
  32. bool v;
  33. };
  34. std::ostream& operator<< (std::ostream& s, const STATIC_ASSERT& a){
  35. return s << a.v;
  36. }
  37.  
  38. struct A { };
  39. int main()
  40.  
  41. {
  42.  
  43. std::cout <<STATIC_ASSERT(is_ptr<A*>::value); // OK
  44. std::cout <<STATIC_ASSERT(is_ptr<remove_ptr<A*>::value_type*>::value) ;//OK
  45. std::cout <<STATIC_ASSERT(is_ptr<remove_ptr<A*>::value_type>::value); //BĹ‚Ä…d, bo value_type to niewskaĹşnik tylko obiekt (?)
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement