1 // Boost.Bimap 2 // 3 // Copyright (c) 2006-2007 Matias Capeletto 4 // 5 // Distributed under the Boost Software License, Version 1.0. 6 // (See accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 9 /// \file property_map/unordered_set_support.hpp 10 /// \brief Support for the property map concept. 11 12 #ifndef BOOST_BIMAP_PROPERTY_MAP_UNORDERED_SET_SUPPORT_HPP 13 #define BOOST_BIMAP_PROPERTY_MAP_UNORDERED_SET_SUPPORT_HPP 14 15 #if defined(_MSC_VER) 16 #pragma once 17 #endif 18 19 #include <boost/config.hpp> 20 21 #include <boost/property_map/property_map.hpp> 22 #include <boost/bimap/unordered_set_of.hpp> 23 #include <boost/bimap/support/data_type_by.hpp> 24 #include <boost/bimap/support/key_type_by.hpp> 25 26 #ifndef BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES 27 28 namespace boost { 29 30 template< class Tag, class Bimap > 31 struct property_traits< ::boost::bimaps::views::unordered_map_view<Tag,Bimap> > 32 { 33 typedef BOOST_DEDUCED_TYPENAME 34 ::boost::bimaps::support::data_type_by<Tag,Bimap>::type value_type; 35 typedef BOOST_DEDUCED_TYPENAME 36 ::boost::bimaps::support:: key_type_by<Tag,Bimap>::type key_type; 37 38 typedef readable_property_map_tag category; 39 }; 40 41 42 template< class Tag, class Bimap > 43 const BOOST_DEDUCED_TYPENAME ::boost::bimaps::support::data_type_by<Tag,Bimap>::type & get(const::boost::bimaps::views::unordered_map_view<Tag,Bimap> & m,const BOOST_DEDUCED_TYPENAME::boost::bimaps::support::key_type_by<Tag,Bimap>::type & key)44 get(const ::boost::bimaps::views::unordered_map_view<Tag,Bimap> & m, 45 const BOOST_DEDUCED_TYPENAME 46 ::boost::bimaps::support::key_type_by<Tag,Bimap>::type & key) 47 { 48 return m.at(key); 49 } 50 51 } // namespace boost 52 53 #endif // BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES 54 55 #endif // BOOST_BIMAP_PROPERTY_MAP_UNORDERED_SET_SUPPORT_HPP 56