Guest User

Untitled

a guest
Apr 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include <type_traits>
  4.  
  5. #define ImplementHasMethod($name) \
  6. template <typename T> \
  7. struct Has##$name##Method \
  8. { \
  9. template <class, class> class checker; \
  10. \
  11. template <typename C> \
  12. static std::true_type Test(checker<C, decltype(&C::$name)> *); \
  13. \
  14. template <typename C> \
  15. static std::false_type Test(...); \
  16. \
  17. typedef decltype(Test<T>(nullptr)) type; \
  18. static const bool Value = std::is_same<std::true_type, decltype(Test<T>(nullptr))>::value; \
  19. }
Add Comment
Please, Sign In to add comment