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_LIST_OF_HPP
0013 #define BOOST_BIMAP_LIST_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/sequenced_index.hpp>
0036
0037 #include <boost/bimap/views/list_map_view.hpp>
0038 #include <boost/bimap/views/list_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 template< class Type >
0104 struct list_of : public ::boost::bimaps::detail::set_type_of_tag
0105 {
0106
0107 typedef Type user_type;
0108
0109
0110 typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
0111 value_type_of<user_type>::type value_type;
0112
0113
0114 struct lazy_concept_checked
0115 {
0116 BOOST_CLASS_REQUIRE ( value_type,
0117 boost, AssignableConcept );
0118
0119 typedef list_of type;
0120 };
0121
0122 BOOST_BIMAP_GENERATE_INDEX_BINDER_0CP_NO_EXTRACTOR(
0123
0124
0125 multi_index::sequenced
0126 )
0127
0128 BOOST_BIMAP_GENERATE_MAP_VIEW_BINDER(
0129
0130
0131 views::list_map_view
0132 )
0133
0134 BOOST_BIMAP_GENERATE_SET_VIEW_BINDER(
0135
0136
0137 views::list_set_view
0138 )
0139
0140 typedef mpl::bool_<true> mutable_key;
0141 };
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163 struct list_of_relation : public ::boost::bimaps::detail::set_type_of_relation_tag
0164 {
0165 BOOST_BIMAP_GENERATE_RELATION_BINDER_0CP(
0166
0167
0168 list_of
0169 )
0170
0171 typedef mpl::bool_<true> left_mutable_key;
0172 typedef mpl::bool_<true> right_mutable_key;
0173 };
0174
0175
0176 }
0177 }
0178
0179
0180 #endif
0181