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_upper_bound.hpp 12 // 13 ///////////////////////////////////////////////////////////////////////////// 14 15 #ifndef BOOST_PHOENIX_HAS_UPPER_BOUND_EN_14_12_2004 16 #define BOOST_PHOENIX_HAS_UPPER_BOUND_EN_14_12_2004 17 18 #include <boost/mpl/or.hpp> 19 #include "./is_std_map.hpp" 20 #include "./is_std_set.hpp" 21 #include "./is_std_hash_map.hpp" 22 #include "./is_std_hash_set.hpp" 23 24 namespace boost 25 { 26 // Specialize this for user-defined types 27 template<typename T> 28 struct has_upper_bound 29 : boost::mpl::or_< 30 boost::mpl::or_< 31 is_std_map<T> 32 , is_std_multimap<T> 33 , is_std_set<T> 34 , is_std_multiset<T> 35 > 36 , boost::mpl::or_< 37 is_std_hash_map<T> 38 , is_std_hash_multimap<T> 39 , is_std_hash_set<T> 40 , is_std_hash_multiset<T> 41 > 42 > 43 { 44 }; 45 } 46 47 #endif 48