3 // Copyright (c) 2006-2007 Matias Capeletto
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)
9 /// \file support/iterator_type_by.hpp
10 /// \brief Metafunctions to access the iterator types of a bimap
12 #ifndef BOOST_BIMAP_SUPPORT_ITERATOR_TYPE_BY_HPP
13 #define BOOST_BIMAP_SUPPORT_ITERATOR_TYPE_BY_HPP
19 #include <boost/config.hpp>
21 #include <boost/bimap/relation/detail/metadata_access_builder.hpp>
22 #include <boost/bimap/relation/detail/static_access_builder.hpp>
24 /** \struct boost::bimaps::support::iterator_type_by
26 \brief Metafunction to obtain the iterator type of the map view by one of the sides.
27 These metafunctions can be used outside the bimap framework for other bimap
28 signature compatible classes.
31 template< class Tag, class Bimap >
32 struct iterator_type_by
34 typedef -unspecified- type;
37 template< class Tag, class Bimap >
38 struct const_iterator_type_by
40 typedef -unspecified- type;
43 template< class Tag, class Bimap >
44 struct reverse_iterator_type_by
46 typedef -unspecified- type;
49 template< class Tag, class Bimap >
50 struct const_reverse_iterator_type_by
52 typedef -unspecified- type;
55 template< class Tag, class Bimap >
56 struct local_iterator_type_by
58 typedef -unspecified- type;
61 template< class Tag, class Bimap >
62 struct const_local_iterator_type_by
64 typedef -unspecified- type;
73 #ifndef BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES
79 // Implementation of iterator type by metafunction
81 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
88 // Implementation of const iterator type by metafunction
90 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
92 const_iterator_type_by,
98 // Implementation of reverse iterator type by metafunction
100 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
102 reverse_iterator_type_by,
103 left_reverse_iterator,
104 right_reverse_iterator
107 // Implementation of const reverse iterator type by metafunction
109 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
111 const_reverse_iterator_type_by,
112 left_const_reverse_iterator,
113 right_const_reverse_iterator
117 // Implementation of local iterator type by metafunction
119 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
121 local_iterator_type_by,
126 // Implementation of const local iterator type by metafunction
128 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
130 const_local_iterator_type_by,
131 left_const_local_iterator,
132 right_const_local_iterator
135 } // namespace support
136 } // namespace bimaps
139 #endif // BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES
141 #endif // BOOST_BIMAP_SUPPORT_ITERATOR_TYPE_BY_HPP