@@ -67,11 +67,11 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
67
67
if constexpr (CanViewAsConst<Rng&>) {
68
68
constexpr bool is_noexcept = !is_view || is_nothrow_copy_constructible_v<V>;
69
69
70
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: forward<Rng>(rng))), V>);
71
- STATIC_ASSERT (noexcept (views::as_const (std:: forward<Rng>(rng))) == is_noexcept);
70
+ STATIC_ASSERT (same_as<decltype (views::as_const (forward<Rng>(rng))), V>);
71
+ STATIC_ASSERT (noexcept (views::as_const (forward<Rng>(rng))) == is_noexcept);
72
72
73
- STATIC_ASSERT (same_as<decltype (std:: forward<Rng>(rng) | views::as_const), V>);
74
- STATIC_ASSERT (noexcept (std:: forward<Rng>(rng) | views::as_const) == is_noexcept);
73
+ STATIC_ASSERT (same_as<decltype (forward<Rng>(rng) | views::as_const), V>);
74
+ STATIC_ASSERT (noexcept (forward<Rng>(rng) | views::as_const) == is_noexcept);
75
75
}
76
76
77
77
// ... with const lvalue argument
@@ -93,34 +93,34 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
93
93
using VS = views::all_t <remove_reference_t <Rng>>;
94
94
constexpr bool is_noexcept = is_nothrow_move_constructible_v<V>;
95
95
96
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (rng))), VS>);
97
- STATIC_ASSERT (noexcept (views::as_const (std:: move (rng))) == is_noexcept);
96
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (rng))), VS>);
97
+ STATIC_ASSERT (noexcept (views::as_const (move (rng))) == is_noexcept);
98
98
99
- STATIC_ASSERT (same_as<decltype (std:: move (rng) | views::as_const), VS>);
100
- STATIC_ASSERT (noexcept (std:: move (rng) | views::as_const) == is_noexcept);
99
+ STATIC_ASSERT (same_as<decltype (move (rng) | views::as_const), VS>);
100
+ STATIC_ASSERT (noexcept (move (rng) | views::as_const) == is_noexcept);
101
101
}
102
102
103
103
// ... with const rvalue argument
104
104
STATIC_ASSERT (CanViewAsConst<const remove_reference_t <Rng>> == (is_view && copy_constructible<V>) );
105
105
if constexpr (CanViewAsConst<const remove_reference_t <Rng>>) {
106
106
constexpr bool is_noexcept = is_nothrow_copy_constructible_v<V>;
107
107
108
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (as_const (rng)))), V>);
109
- STATIC_ASSERT (noexcept (views::as_const (std:: move (as_const (rng)))) == is_noexcept);
108
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (as_const (rng)))), V>);
109
+ STATIC_ASSERT (noexcept (views::as_const (move (as_const (rng)))) == is_noexcept);
110
110
111
- STATIC_ASSERT (same_as<decltype (std:: move (as_const (rng)) | views::as_const), V>);
112
- STATIC_ASSERT (noexcept (std:: move (as_const (rng)) | views::as_const) == is_noexcept);
111
+ STATIC_ASSERT (same_as<decltype (move (as_const (rng)) | views::as_const), V>);
112
+ STATIC_ASSERT (noexcept (move (as_const (rng)) | views::as_const) == is_noexcept);
113
113
}
114
114
} else if constexpr (_Is_specialization_v<remove_cvref_t <Rng>, ranges::empty_view>) {
115
115
// range adaptor results in empty_view<const X> reconstructed from empty_view<X>
116
116
using ConstEmpty = ranges::empty_view<const ranges::range_value_t <Rng>>;
117
117
118
118
{ // ... with lvalue argument
119
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: forward<Rng>(rng))), ConstEmpty>);
120
- STATIC_ASSERT (noexcept (views::as_const (std:: forward<Rng>(rng))));
119
+ STATIC_ASSERT (same_as<decltype (views::as_const (forward<Rng>(rng))), ConstEmpty>);
120
+ STATIC_ASSERT (noexcept (views::as_const (forward<Rng>(rng))));
121
121
122
- STATIC_ASSERT (same_as<decltype (std:: forward<Rng>(rng) | views::as_const), ConstEmpty>);
123
- STATIC_ASSERT (noexcept (std:: forward<Rng>(rng) | views::as_const));
122
+ STATIC_ASSERT (same_as<decltype (forward<Rng>(rng) | views::as_const), ConstEmpty>);
123
+ STATIC_ASSERT (noexcept (forward<Rng>(rng) | views::as_const));
124
124
}
125
125
126
126
{ // ... with const lvalue argument
@@ -132,88 +132,88 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
132
132
}
133
133
134
134
{ // ... with rvalue argument
135
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (rng))), ConstEmpty>);
136
- STATIC_ASSERT (noexcept (views::as_const (std:: move (rng))));
135
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (rng))), ConstEmpty>);
136
+ STATIC_ASSERT (noexcept (views::as_const (move (rng))));
137
137
138
- STATIC_ASSERT (same_as<decltype (std:: move (rng) | views::as_const), ConstEmpty>);
139
- STATIC_ASSERT (noexcept (std:: move (rng) | views::as_const));
138
+ STATIC_ASSERT (same_as<decltype (move (rng) | views::as_const), ConstEmpty>);
139
+ STATIC_ASSERT (noexcept (move (rng) | views::as_const));
140
140
}
141
141
142
142
{ // ... with const rvalue argument
143
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (as_const (rng)))), ConstEmpty>);
144
- STATIC_ASSERT (noexcept (views::as_const (std:: move (as_const (rng)))));
143
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (as_const (rng)))), ConstEmpty>);
144
+ STATIC_ASSERT (noexcept (views::as_const (move (as_const (rng)))));
145
145
146
- STATIC_ASSERT (same_as<decltype (std:: move (as_const (rng)) | views::as_const), ConstEmpty>);
147
- STATIC_ASSERT (noexcept (std:: move (as_const (rng)) | views::as_const));
146
+ STATIC_ASSERT (same_as<decltype (move (as_const (rng)) | views::as_const), ConstEmpty>);
147
+ STATIC_ASSERT (noexcept (move (as_const (rng)) | views::as_const));
148
148
}
149
149
} else if constexpr (_Is_span_v<Rng>) { // range adaptor results in span<const X, E> reconstructed from span<X, E>
150
150
using ConstSpan = span<const typename V::element_type, V::extent>;
151
151
152
152
{ // ... with lvalue argument
153
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: forward<Rng>(rng))), ConstSpan>);
154
- STATIC_ASSERT (noexcept (views::as_const (std:: forward<Rng>(rng))));
153
+ STATIC_ASSERT (same_as<decltype (views::as_const (forward<Rng>(rng))), ConstSpan>);
154
+ STATIC_ASSERT (noexcept (views::as_const (forward<Rng>(rng))));
155
155
156
- STATIC_ASSERT (same_as<decltype (std:: forward<Rng>(rng) | views::as_const), ConstSpan>);
157
- STATIC_ASSERT (noexcept (std:: forward<Rng>(rng) | views::as_const));
156
+ STATIC_ASSERT (same_as<decltype (forward<Rng>(rng) | views::as_const), ConstSpan>);
157
+ STATIC_ASSERT (noexcept (forward<Rng>(rng) | views::as_const));
158
158
}
159
159
160
160
{ // ... with const lvalue argument
161
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: as_const (rng))), ConstSpan>);
162
- STATIC_ASSERT (noexcept (views::as_const (std:: as_const (rng))));
161
+ STATIC_ASSERT (same_as<decltype (views::as_const (as_const (rng))), ConstSpan>);
162
+ STATIC_ASSERT (noexcept (views::as_const (as_const (rng))));
163
163
164
- STATIC_ASSERT (same_as<decltype (std:: as_const (rng) | views::as_const), ConstSpan>);
165
- STATIC_ASSERT (noexcept (std:: as_const (rng) | views::as_const));
164
+ STATIC_ASSERT (same_as<decltype (as_const (rng) | views::as_const), ConstSpan>);
165
+ STATIC_ASSERT (noexcept (as_const (rng) | views::as_const));
166
166
}
167
167
168
168
{ // ... with rvalue argument
169
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (rng))), ConstSpan>);
170
- STATIC_ASSERT (noexcept (views::as_const (std:: move (rng))));
169
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (rng))), ConstSpan>);
170
+ STATIC_ASSERT (noexcept (views::as_const (move (rng))));
171
171
172
- STATIC_ASSERT (same_as<decltype (std:: move (rng) | views::as_const), ConstSpan>);
173
- STATIC_ASSERT (noexcept (std:: move (rng) | views::as_const));
172
+ STATIC_ASSERT (same_as<decltype (move (rng) | views::as_const), ConstSpan>);
173
+ STATIC_ASSERT (noexcept (move (rng) | views::as_const));
174
174
}
175
175
176
176
{ // ... with const rvalue argument
177
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (std:: as_const (rng)))), ConstSpan>);
178
- STATIC_ASSERT (noexcept (views::as_const (std:: move (std:: as_const (rng)))));
177
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (as_const (rng)))), ConstSpan>);
178
+ STATIC_ASSERT (noexcept (views::as_const (move (as_const (rng)))));
179
179
180
- STATIC_ASSERT (same_as<decltype (std:: move (std:: as_const (rng)) | views::as_const), ConstSpan>);
181
- STATIC_ASSERT (noexcept (std:: move (std:: as_const (rng)) | views::as_const));
180
+ STATIC_ASSERT (same_as<decltype (move (as_const (rng)) | views::as_const), ConstSpan>);
181
+ STATIC_ASSERT (noexcept (move (as_const (rng)) | views::as_const));
182
182
}
183
183
} else if constexpr (CanReconstructRefView<Rng>) {
184
184
// range adaptor results in ref_view<const X> reconstructed from ref_view<X>
185
185
using ReconstructedRefView = ref_view<const typename RefViewUnderlyingType<V>::type>;
186
186
187
187
{ // ... with lvalue argument
188
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: forward<Rng>(rng))), ReconstructedRefView>);
189
- STATIC_ASSERT (noexcept (views::as_const (std:: forward<Rng>(rng))));
188
+ STATIC_ASSERT (same_as<decltype (views::as_const (forward<Rng>(rng))), ReconstructedRefView>);
189
+ STATIC_ASSERT (noexcept (views::as_const (forward<Rng>(rng))));
190
190
191
- STATIC_ASSERT (same_as<decltype (std:: forward<Rng>(rng) | views::as_const), ReconstructedRefView>);
192
- STATIC_ASSERT (noexcept (std:: forward<Rng>(rng) | views::as_const));
191
+ STATIC_ASSERT (same_as<decltype (forward<Rng>(rng) | views::as_const), ReconstructedRefView>);
192
+ STATIC_ASSERT (noexcept (forward<Rng>(rng) | views::as_const));
193
193
}
194
194
195
195
{ // ... with const lvalue argument
196
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: as_const (rng))), ReconstructedRefView>);
197
- STATIC_ASSERT (noexcept (views::as_const (std:: as_const (rng))));
196
+ STATIC_ASSERT (same_as<decltype (views::as_const (as_const (rng))), ReconstructedRefView>);
197
+ STATIC_ASSERT (noexcept (views::as_const (as_const (rng))));
198
198
199
- STATIC_ASSERT (same_as<decltype (std:: as_const (rng) | views::as_const), ReconstructedRefView>);
200
- STATIC_ASSERT (noexcept (std:: as_const (rng) | views::as_const));
199
+ STATIC_ASSERT (same_as<decltype (as_const (rng) | views::as_const), ReconstructedRefView>);
200
+ STATIC_ASSERT (noexcept (as_const (rng) | views::as_const));
201
201
}
202
202
203
203
{ // ... with rvalue argument
204
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (rng))), ReconstructedRefView>);
205
- STATIC_ASSERT (noexcept (views::as_const (std:: move (rng))));
204
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (rng))), ReconstructedRefView>);
205
+ STATIC_ASSERT (noexcept (views::as_const (move (rng))));
206
206
207
- STATIC_ASSERT (same_as<decltype (std:: move (rng) | views::as_const), ReconstructedRefView>);
208
- STATIC_ASSERT (noexcept (std:: move (rng) | views::as_const));
207
+ STATIC_ASSERT (same_as<decltype (move (rng) | views::as_const), ReconstructedRefView>);
208
+ STATIC_ASSERT (noexcept (move (rng) | views::as_const));
209
209
}
210
210
211
211
{ // ... with const rvalue argument
212
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (std:: as_const (rng)))), ReconstructedRefView>);
213
- STATIC_ASSERT (noexcept (views::as_const (std:: move (std:: as_const (rng)))));
212
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (as_const (rng)))), ReconstructedRefView>);
213
+ STATIC_ASSERT (noexcept (views::as_const (move (as_const (rng)))));
214
214
215
- STATIC_ASSERT (same_as<decltype (std:: move (std:: as_const (rng)) | views::as_const), ReconstructedRefView>);
216
- STATIC_ASSERT (noexcept (std:: move (std:: as_const (rng)) | views::as_const));
215
+ STATIC_ASSERT (same_as<decltype (move (as_const (rng)) | views::as_const), ReconstructedRefView>);
216
+ STATIC_ASSERT (noexcept (move (as_const (rng)) | views::as_const));
217
217
}
218
218
} else if constexpr (is_lvalue_reference_v<Rng> && constant_range<const remove_cvref_t <Rng>>
219
219
&& !is_view) { // range adaptor results in ref_view<const X>
@@ -222,11 +222,11 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
222
222
// ... with lvalue argument
223
223
STATIC_ASSERT (CanViewAsConst<Rng&> == copy_constructible<V>);
224
224
if constexpr (CanViewAsConst<Rng&>) {
225
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: forward<Rng>(rng))), ConstRefView>);
226
- STATIC_ASSERT (noexcept (views::as_const (std:: forward<Rng>(rng))));
225
+ STATIC_ASSERT (same_as<decltype (views::as_const (forward<Rng>(rng))), ConstRefView>);
226
+ STATIC_ASSERT (noexcept (views::as_const (forward<Rng>(rng))));
227
227
228
- STATIC_ASSERT (same_as<decltype (std:: forward<Rng>(rng) | views::as_const), ConstRefView>);
229
- STATIC_ASSERT (noexcept (std:: forward<Rng>(rng) | views::as_const));
228
+ STATIC_ASSERT (same_as<decltype (forward<Rng>(rng) | views::as_const), ConstRefView>);
229
+ STATIC_ASSERT (noexcept (forward<Rng>(rng) | views::as_const));
230
230
}
231
231
232
232
// ... with const lvalue argument
@@ -244,11 +244,11 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
244
244
if constexpr (CanViewAsConst<Rng&>) {
245
245
constexpr bool is_noexcept = !is_view || is_nothrow_copy_constructible_v<V>;
246
246
247
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: forward<Rng>(rng))), R>);
248
- STATIC_ASSERT (noexcept (views::as_const (std:: forward<Rng>(rng))) == is_noexcept);
247
+ STATIC_ASSERT (same_as<decltype (views::as_const (forward<Rng>(rng))), R>);
248
+ STATIC_ASSERT (noexcept (views::as_const (forward<Rng>(rng))) == is_noexcept);
249
249
250
- STATIC_ASSERT (same_as<decltype (std:: forward<Rng>(rng) | views::as_const), R>);
251
- STATIC_ASSERT (noexcept (std:: forward<Rng>(rng) | views::as_const) == is_noexcept);
250
+ STATIC_ASSERT (same_as<decltype (forward<Rng>(rng) | views::as_const), R>);
251
+ STATIC_ASSERT (noexcept (forward<Rng>(rng) | views::as_const) == is_noexcept);
252
252
}
253
253
254
254
// ... with const lvalue argument
@@ -258,11 +258,11 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
258
258
using RC = as_const_view<views::all_t <const remove_reference_t <Rng>&>>;
259
259
constexpr bool is_noexcept = !is_view || is_nothrow_copy_constructible_v<V>;
260
260
261
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: as_const (rng))), RC>);
262
- STATIC_ASSERT (noexcept (views::as_const (std:: as_const (rng))) == is_noexcept);
261
+ STATIC_ASSERT (same_as<decltype (views::as_const (as_const (rng))), RC>);
262
+ STATIC_ASSERT (noexcept (views::as_const (as_const (rng))) == is_noexcept);
263
263
264
- STATIC_ASSERT (same_as<decltype (std:: as_const (rng) | views::as_const), RC>);
265
- STATIC_ASSERT (noexcept (std:: as_const (rng) | views::as_const) == is_noexcept);
264
+ STATIC_ASSERT (same_as<decltype (as_const (rng) | views::as_const), RC>);
265
+ STATIC_ASSERT (noexcept (as_const (rng) | views::as_const) == is_noexcept);
266
266
}
267
267
268
268
// ... with rvalue argument
@@ -271,28 +271,28 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
271
271
using RS = as_const_view<views::all_t <remove_reference_t <Rng>>>;
272
272
constexpr bool is_noexcept = is_nothrow_move_constructible_v<V>;
273
273
274
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (rng))), RS>);
275
- STATIC_ASSERT (noexcept (views::as_const (std:: move (rng))) == is_noexcept);
274
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (rng))), RS>);
275
+ STATIC_ASSERT (noexcept (views::as_const (move (rng))) == is_noexcept);
276
276
277
- STATIC_ASSERT (same_as<decltype (std:: move (rng) | views::as_const), RS>);
278
- STATIC_ASSERT (noexcept (std:: move (rng) | views::as_const) == is_noexcept);
277
+ STATIC_ASSERT (same_as<decltype (move (rng) | views::as_const), RS>);
278
+ STATIC_ASSERT (noexcept (move (rng) | views::as_const) == is_noexcept);
279
279
}
280
280
281
281
// ... with const rvalue argument
282
282
STATIC_ASSERT (CanViewAsConst<const remove_reference_t <Rng>> == (is_view && copy_constructible<V>) );
283
283
if constexpr (CanViewAsConst<const remove_reference_t <Rng>>) {
284
284
constexpr bool is_noexcept = is_nothrow_copy_constructible_v<V>;
285
285
286
- STATIC_ASSERT (same_as<decltype (views::as_const (std:: move (std:: as_const (rng)))), R>);
287
- STATIC_ASSERT (noexcept (views::as_const (std:: move (std:: as_const (rng)))) == is_noexcept);
286
+ STATIC_ASSERT (same_as<decltype (views::as_const (move (as_const (rng)))), R>);
287
+ STATIC_ASSERT (noexcept (views::as_const (move (as_const (rng)))) == is_noexcept);
288
288
289
- STATIC_ASSERT (same_as<decltype (std:: move (std:: as_const (rng)) | views::as_const), R>);
290
- STATIC_ASSERT (noexcept (std:: move (std:: as_const (rng)) | views::as_const) == is_noexcept);
289
+ STATIC_ASSERT (same_as<decltype (move (as_const (rng)) | views::as_const), R>);
290
+ STATIC_ASSERT (noexcept (move (as_const (rng)) | views::as_const) == is_noexcept);
291
291
}
292
292
}
293
293
294
294
// Validate deduction guide
295
- same_as<R> auto r = as_const_view{std:: forward<Rng>(rng)};
295
+ same_as<R> auto r = as_const_view{forward<Rng>(rng)};
296
296
297
297
// Validate as_const_view::size
298
298
STATIC_ASSERT (CanMemberSize<R> == sized_range<V>);
@@ -472,8 +472,8 @@ constexpr bool test_one(Rng&& rng, Expected&& expected) {
472
472
}
473
473
474
474
// Validate as_const_view::base() &&
475
- same_as<V> auto b2 = std:: move (r).base ();
476
- STATIC_ASSERT (noexcept (std:: move (r).base ()) == is_nothrow_move_constructible_v<V>);
475
+ same_as<V> auto b2 = move (r).base ();
476
+ STATIC_ASSERT (noexcept (move (r).base ()) == is_nothrow_move_constructible_v<V>);
477
477
if (!is_empty) {
478
478
assert (*b2.begin () == *begin (expected));
479
479
}
0 commit comments