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