Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // is_container
- // ============
- template <typename T>
- struct is_container {
- static constexpr TYPE value = is_type<T>::value;
- };
- // check_type
- // ============
- template<class C1, class C2>
- typename std::enable_if
- <is_container<C1>::value == SET
- && is_container<C2>::value == SET, bool>::type
- check_type() {
- return true;
- }
- template<class C1, class C2>
- typename std::enable_if
- <is_container<C1>::value == MAP
- && is_container<C2>::value == MAP, bool>::type
- check_type() {
- return true;
- }
- template<class C1, class C2>
- typename std::enable_if
- <is_container<C1>::value == MMAP
- && is_container<C2>::value == MMAP, bool>::type
- check_type() {
- return true;
- }
- template<class C1, class C2>
- typename std::enable_if
- <is_container<C1>::value == MMAP
- && is_container<C2>::value == MAP, bool>::type
- check_type() {
- return true;
- }
- template<class C1, class C2>
- typename std::enable_if
- <is_container<C1>::value == MSET
- && is_container<C2>::value == MSET, bool>::type
- check_type() {
- return true;
- }
- template<class C1, class C2>
- typename std::enable_if
- <is_container<C1>::value == MSET
- && is_container<C2>::value == SET, bool>::type
- check_type() {
- return true;
- }
- template<class C1, class C2>
- bool check_type() {
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement