Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/range/adaptor/map.hpp @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
comparison
equal
deleted
inserted
replaced
100:793467b5e61c | 101:c530137014c0 |
---|---|
13 | 13 |
14 #include <boost/range/adaptor/transformed.hpp> | 14 #include <boost/range/adaptor/transformed.hpp> |
15 #include <boost/range/iterator_range.hpp> | 15 #include <boost/range/iterator_range.hpp> |
16 #include <boost/range/value_type.hpp> | 16 #include <boost/range/value_type.hpp> |
17 #include <boost/range/reference.hpp> | 17 #include <boost/range/reference.hpp> |
18 #include <boost/range/concepts.hpp> | |
18 | 19 |
19 namespace boost | 20 namespace boost |
20 { | 21 { |
21 namespace range_detail | 22 namespace range_detail |
22 { | 23 { |
118 | 119 |
119 template< class StdPairRng > | 120 template< class StdPairRng > |
120 inline select_first_range<StdPairRng> | 121 inline select_first_range<StdPairRng> |
121 operator|( const StdPairRng& r, map_keys_forwarder ) | 122 operator|( const StdPairRng& r, map_keys_forwarder ) |
122 { | 123 { |
124 BOOST_RANGE_CONCEPT_ASSERT(( | |
125 SinglePassRangeConcept<const StdPairRng>)); | |
126 | |
123 return operator|( r, | 127 return operator|( r, |
124 boost::adaptors::transformed( select_first<StdPairRng>() ) ); | 128 boost::adaptors::transformed( select_first<StdPairRng>() ) ); |
125 } | 129 } |
126 | 130 |
127 template< class StdPairRng > | 131 template< class StdPairRng > |
128 inline select_second_mutable_range<StdPairRng> | 132 inline select_second_mutable_range<StdPairRng> |
129 operator|( StdPairRng& r, map_values_forwarder ) | 133 operator|( StdPairRng& r, map_values_forwarder ) |
130 { | 134 { |
135 BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept<StdPairRng>)); | |
136 | |
131 return operator|( r, | 137 return operator|( r, |
132 boost::adaptors::transformed( select_second_mutable<StdPairRng>() ) ); | 138 boost::adaptors::transformed( select_second_mutable<StdPairRng>() ) ); |
133 } | 139 } |
134 | 140 |
135 template< class StdPairRng > | 141 template< class StdPairRng > |
136 inline select_second_const_range<StdPairRng> | 142 inline select_second_const_range<StdPairRng> |
137 operator|( const StdPairRng& r, map_values_forwarder ) | 143 operator|( const StdPairRng& r, map_values_forwarder ) |
138 { | 144 { |
145 BOOST_RANGE_CONCEPT_ASSERT(( | |
146 SinglePassRangeConcept<const StdPairRng>)); | |
147 | |
139 return operator|( r, | 148 return operator|( r, |
140 boost::adaptors::transformed( select_second_const<StdPairRng>() ) ); | 149 boost::adaptors::transformed( select_second_const<StdPairRng>() ) ); |
141 } | 150 } |
142 | 151 |
143 } // 'range_detail' | 152 } // 'range_detail' |
159 | 168 |
160 template<class StdPairRange> | 169 template<class StdPairRange> |
161 inline select_first_range<StdPairRange> | 170 inline select_first_range<StdPairRange> |
162 keys(const StdPairRange& rng) | 171 keys(const StdPairRange& rng) |
163 { | 172 { |
173 BOOST_RANGE_CONCEPT_ASSERT(( | |
174 SinglePassRangeConcept<const StdPairRange>)); | |
175 | |
164 return select_first_range<StdPairRange>( | 176 return select_first_range<StdPairRange>( |
165 range_detail::select_first<StdPairRange>(), rng ); | 177 range_detail::select_first<StdPairRange>(), rng ); |
166 } | 178 } |
167 | 179 |
168 template<class StdPairRange> | 180 template<class StdPairRange> |
169 inline select_second_const_range<StdPairRange> | 181 inline select_second_const_range<StdPairRange> |
170 values(const StdPairRange& rng) | 182 values(const StdPairRange& rng) |
171 { | 183 { |
184 BOOST_RANGE_CONCEPT_ASSERT(( | |
185 SinglePassRangeConcept<const StdPairRange>)); | |
186 | |
172 return select_second_const_range<StdPairRange>( | 187 return select_second_const_range<StdPairRange>( |
173 range_detail::select_second_const<StdPairRange>(), rng ); | 188 range_detail::select_second_const<StdPairRange>(), rng ); |
174 } | 189 } |
175 | 190 |
176 template<class StdPairRange> | 191 template<class StdPairRange> |
177 inline select_second_mutable_range<StdPairRange> | 192 inline select_second_mutable_range<StdPairRange> |
178 values(StdPairRange& rng) | 193 values(StdPairRange& rng) |
179 { | 194 { |
195 BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept<StdPairRange>)); | |
196 | |
180 return select_second_mutable_range<StdPairRange>( | 197 return select_second_mutable_range<StdPairRange>( |
181 range_detail::select_second_mutable<StdPairRange>(), rng ); | 198 range_detail::select_second_mutable<StdPairRange>(), rng ); |
182 } | 199 } |
183 } // 'adaptors' | 200 } // 'adaptors' |
184 | 201 |