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