Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. // is_container
  2. // ============
  3. template <typename T>
  4. struct is_container {
  5.   static constexpr TYPE value = is_type<T>::value;
  6. };
  7.  
  8. // check_type
  9. // ============
  10. template<class C1, class C2>
  11. typename std::enable_if
  12.   <is_container<C1>::value == SET
  13.   && is_container<C2>::value == SET, bool>::type
  14. check_type() {
  15.   return true;
  16. }
  17.  
  18. template<class C1, class C2>
  19. typename std::enable_if
  20.   <is_container<C1>::value == MAP
  21.   && is_container<C2>::value == MAP, bool>::type
  22. check_type() {
  23.   return true;
  24. }
  25.  
  26. template<class C1, class C2>
  27. typename std::enable_if
  28.   <is_container<C1>::value == MMAP
  29.   && is_container<C2>::value == MMAP, bool>::type
  30. check_type() {
  31.   return true;
  32. }
  33.  
  34. template<class C1, class C2>
  35. typename std::enable_if
  36.   <is_container<C1>::value == MMAP
  37.   && is_container<C2>::value == MAP, bool>::type
  38. check_type() {
  39.   return true;
  40. }
  41.  
  42. template<class C1, class C2>
  43. typename std::enable_if
  44.   <is_container<C1>::value == MSET
  45.   && is_container<C2>::value == MSET, bool>::type
  46. check_type() {
  47.   return true;
  48. }
  49.  
  50. template<class C1, class C2>
  51. typename std::enable_if
  52.   <is_container<C1>::value == MSET
  53.   && is_container<C2>::value == SET, bool>::type
  54. check_type() {
  55.   return true;
  56. }
  57.  
  58. template<class C1, class C2>
  59. bool check_type() {
  60.   return false;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement