File indexing completed on 2025-01-18 09:29:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef BOOST_BIMAP_VECTOR_OF_HPP
0013 #define BOOST_BIMAP_VECTOR_OF_HPP
0014
0015 #if defined(_MSC_VER)
0016 #pragma once
0017 #endif
0018
0019 #include <boost/config.hpp>
0020
0021 #include <boost/bimap/detail/user_interface_config.hpp>
0022
0023 #include <boost/mpl/bool.hpp>
0024
0025 #include <boost/concept_check.hpp>
0026
0027 #include <boost/bimap/detail/concept_tags.hpp>
0028
0029 #include <boost/bimap/tags/support/value_type_of.hpp>
0030
0031 #include <boost/bimap/detail/generate_index_binder.hpp>
0032 #include <boost/bimap/detail/generate_view_binder.hpp>
0033 #include <boost/bimap/detail/generate_relation_binder.hpp>
0034
0035 #include <boost/multi_index/random_access_index.hpp>
0036
0037 #include <boost/bimap/views/vector_map_view.hpp>
0038 #include <boost/bimap/views/vector_set_view.hpp>
0039
0040 namespace boost {
0041 namespace bimaps {
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108 template< class Type >
0109 struct vector_of : public ::boost::bimaps::detail::set_type_of_tag
0110 {
0111
0112 typedef Type user_type;
0113
0114
0115 typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
0116 value_type_of<user_type>::type value_type;
0117
0118
0119 struct lazy_concept_checked
0120 {
0121 BOOST_CLASS_REQUIRE ( value_type,
0122 boost, AssignableConcept );
0123
0124 typedef vector_of type;
0125 };
0126
0127 BOOST_BIMAP_GENERATE_INDEX_BINDER_0CP_NO_EXTRACTOR(
0128
0129
0130 multi_index::random_access
0131 )
0132
0133 BOOST_BIMAP_GENERATE_MAP_VIEW_BINDER(
0134
0135
0136 views::vector_map_view
0137 )
0138
0139 BOOST_BIMAP_GENERATE_SET_VIEW_BINDER(
0140
0141
0142 views::vector_set_view
0143 )
0144
0145 typedef mpl::bool_<true> mutable_key;
0146 };
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168 struct vector_of_relation : public ::boost::bimaps::detail::set_type_of_relation_tag
0169 {
0170 BOOST_BIMAP_GENERATE_RELATION_BINDER_0CP(
0171
0172
0173 vector_of
0174 )
0175
0176 typedef mpl::bool_<true> left_mutable_key;
0177 typedef mpl::bool_<true> right_mutable_key;
0178 };
0179
0180
0181 }
0182 }
0183
0184
0185 #endif
0186