1 // Copyright 2005 Daniel Wallin. 2 // Copyright 2005 Joel de Guzman. 3 // 4 // Use, modification and distribution is subject to the Boost Software 5 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 // http://www.boost.org/LICENSE_1_0.txt) 7 // 8 // Modeled after range_ex, Copyright 2004 Eric Niebler 9 /////////////////////////////////////////////////////////////////////////////// 10 // 11 // has_equal_range.hpp 12 // 13 ///////////////////////////////////////////////////////////////////////////// 14 15 #if defined(_MSC_VER) 16 #pragma once 17 #endif 18 19 #ifndef BOOST_PHOENIX_HAS_EQUAL_RANGE_EN_14_12_2004 20 #define BOOST_PHOENIX_HAS_EQUAL_RANGE_EN_14_12_2004 21 22 #include <boost/mpl/or.hpp> 23 #include "./is_std_map.hpp" 24 #include "./is_std_set.hpp" 25 #include "./is_std_hash_map.hpp" 26 #include "./is_std_hash_set.hpp" 27 28 namespace boost 29 { 30 // Specialize this for user-defined types 31 template<typename T> 32 struct has_equal_range 33 : boost::mpl::or_< 34 boost::mpl::or_< 35 is_std_map<T> 36 , is_std_multimap<T> 37 , is_std_set<T> 38 , is_std_multiset<T> 39 > 40 , boost::mpl::or_< 41 is_std_hash_map<T> 42 , is_std_hash_multimap<T> 43 , is_std_hash_set<T> 44 , is_std_hash_multiset<T> 45 > 46 > 47 { 48 }; 49 } 50 51 #endif 52