|
55 | 55 | concept range = @\seebelow@; // freestanding |
56 | 56 |
|
57 | 57 | template<class T> |
58 | | -inlineconstexpr bool enable_borrowed_range = false; // freestanding |
| 58 | + constexpr bool enable_borrowed_range = false; // freestanding |
59 | 59 |
|
60 | 60 | template<class T> |
61 | 61 | concept borrowed_range = @\seebelow@; // freestanding |
|
83 | 83 |
|
84 | 84 | // \ref{range.sized}, sized ranges |
85 | 85 | template<class> |
86 | | -inlineconstexpr bool disable_sized_range = false; // freestanding |
| 86 | + constexpr bool disable_sized_range = false; // freestanding |
87 | 87 |
|
88 | 88 | template<class T> |
89 | 89 | concept sized_range = @\seebelow@; // freestanding |
90 | 90 |
|
91 | 91 | // \ref{range.view}, views |
92 | 92 | template<class T> |
93 | | -inlineconstexpr bool enable_view = @\seebelow@; // freestanding |
| 93 | + constexpr bool enable_view = @\seebelow@; // freestanding |
94 | 94 |
|
95 | 95 | struct view_base {}; // freestanding |
96 | 96 |
|
|
138 | 138 | class subrange; // freestanding |
139 | 139 |
|
140 | 140 | template<class I, class S, subrange_kind K> |
141 | | -inlineconstexpr bool enable_borrowed_range<subrange<I, S, K>> = true; // freestanding |
| 141 | + constexpr bool enable_borrowed_range<subrange<I, S, K>> = true; // freestanding |
142 | 142 |
|
143 | 143 | template<size_t N, class I, class S, subrange_kind K> |
144 | 144 | requires ((N == 0 && @\libconcept{copyable}@<I>) || N == 1) |
|
187 | 187 |
|
188 | 188 | namespace views { |
189 | 189 | template<class T> |
190 | | -inlineconstexpr empty_view<T> @\libmember{empty}{views}@{}; // freestanding |
| 190 | + constexpr empty_view<T> @\libmember{empty}{views}@{}; // freestanding |
191 | 191 | } |
192 | 192 |
|
193 | 193 | // \ref{range.single}, single view |
|
206 | 206 | class iota_view; // freestanding |
207 | 207 |
|
208 | 208 | template<class W, class Bound> |
209 | | -inlineconstexpr bool enable_borrowed_range<iota_view<W, Bound>> = true; // freestanding |
| 209 | + constexpr bool enable_borrowed_range<iota_view<W, Bound>> = true; // freestanding |
210 | 210 |
|
211 | 211 | namespace views { inline constexpr @\unspecnc@ iota = @\unspecnc@; } // freestanding |
212 | 212 |
|
|
248 | 248 | class ref_view; // freestanding |
249 | 249 |
|
250 | 250 | template<class T> |
251 | | -inlineconstexpr bool enable_borrowed_range<ref_view<T>> = true; // freestanding |
| 251 | + constexpr bool enable_borrowed_range<ref_view<T>> = true; // freestanding |
252 | 252 |
|
253 | 253 | // \ref{range.owning.view}, owning view |
254 | 254 | template<@\libconcept{range}@ R> |
|
290 | 290 | template<@\libconcept{view}@> class take_view; // freestanding |
291 | 291 |
|
292 | 292 | template<class T> |
293 | | -inlineconstexpr bool enable_borrowed_range<take_view<T>> = // freestanding |
| 293 | + constexpr bool enable_borrowed_range<take_view<T>> = // freestanding |
294 | 294 | enable_borrowed_range<T>; |
295 | 295 |
|
296 | 296 | namespace views { inline constexpr @\unspecnc@ take = @\unspecnc@; } // freestanding |
|
308 | 308 | class drop_view; // freestanding |
309 | 309 |
|
310 | 310 | template<class T> |
311 | | -inlineconstexpr bool enable_borrowed_range<drop_view<T>> = // freestanding |
| 311 | + constexpr bool enable_borrowed_range<drop_view<T>> = // freestanding |
312 | 312 | enable_borrowed_range<T>; |
313 | 313 |
|
314 | 314 | namespace views { inline constexpr @\unspecnc@ drop = @\unspecnc@; } // freestanding |
|
320 | 320 | class drop_while_view; // freestanding |
321 | 321 |
|
322 | 322 | template<class T, class Pred> |
323 | | -inlineconstexpr bool enable_borrowed_range<drop_while_view<T, Pred>> = // freestanding |
| 323 | + constexpr bool enable_borrowed_range<drop_while_view<T, Pred>> = // freestanding |
324 | 324 | enable_borrowed_range<T>; |
325 | 325 |
|
326 | 326 | namespace views { inline constexpr @\unspecnc@ drop_while = @\unspecnc@; } // freestanding |
|
374 | 374 | class common_view; // freestanding |
375 | 375 |
|
376 | 376 | template<class T> |
377 | | -inlineconstexpr bool enable_borrowed_range<common_view<T>> = // freestanding |
| 377 | + constexpr bool enable_borrowed_range<common_view<T>> = // freestanding |
378 | 378 | enable_borrowed_range<T>; |
379 | 379 |
|
380 | 380 | namespace views { inline constexpr @\unspecnc@ common = @\unspecnc@; } // freestanding |
|
405 | 405 | class as_const_view; // freestanding |
406 | 406 |
|
407 | 407 | template<class T> |
408 | | -inlineconstexpr bool enable_borrowed_range<as_const_view<T>> = // freestanding |
| 408 | + constexpr bool enable_borrowed_range<as_const_view<T>> = // freestanding |
409 | 409 | enable_borrowed_range<T>; |
410 | 410 |
|
411 | 411 | namespace views { inline constexpr @\unspecnc@ as_const = @\unspecnc@; } // freestanding |
|
416 | 416 | class elements_view; // freestanding |
417 | 417 |
|
418 | 418 | template<class T, size_t N> |
419 | | -inlineconstexpr bool enable_borrowed_range<elements_view<T, N>> = // freestanding |
| 419 | + constexpr bool enable_borrowed_range<elements_view<T, N>> = // freestanding |
420 | 420 | enable_borrowed_range<T>; |
421 | 421 |
|
422 | 422 | template<class R> |
|
426 | 426 |
|
427 | 427 | namespace views { |
428 | 428 | template<size_t N> |
429 | | -inlineconstexpr @\unspecnc@ elements = @\unspecnc@; // freestanding |
| 429 | + constexpr @\unspecnc@ elements = @\unspecnc@; // freestanding |
430 | 430 | inline constexpr auto @\libmember{keys}{views}@ = elements<0>; // freestanding |
431 | 431 | inline constexpr auto @\libmember{values}{views}@ = elements<1>; // freestanding |
432 | 432 | } |
|
1319 | 1319 | \indexlibraryglobal{enable_borrowed_range}% |
1320 | 1320 | \begin{itemdecl} |
1321 | 1321 | template<class> |
1322 | | -inlineconstexpr bool enable_borrowed_range = false; |
| 1322 | + constexpr bool enable_borrowed_range = false; |
1323 | 1323 | \end{itemdecl} |
1324 | 1324 |
|
1325 | 1325 | \begin{itemdescr} |
|
1386 | 1386 | \indexlibraryglobal{disable_sized_range}% |
1387 | 1387 | \begin{itemdecl} |
1388 | 1388 | template<class> |
1389 | | -inlineconstexpr bool disable_sized_range = false; |
| 1389 | + constexpr bool disable_sized_range = false; |
1390 | 1390 | \end{itemdecl} |
1391 | 1391 |
|
1392 | 1392 | \begin{itemdescr} |
|
1478 | 1478 | \indexlibraryglobal{enable_view}% |
1479 | 1479 | \begin{itemdecl} |
1480 | 1480 | template<class T> |
1481 | | -inlineconstexpr bool @\exposidnc{is-derived-from-view-interface}@ = @\seebelownc@; // \expos |
| 1481 | + constexpr bool @\exposidnc{is-derived-from-view-interface}@ = @\seebelownc@; // \expos |
1482 | 1482 | template<class T> |
1483 | | -inlineconstexpr bool enable_view = |
| 1483 | + constexpr bool enable_view = |
1484 | 1484 | @\libconcept{derived_from}@<T, view_base> || @\exposid{is-derived-from-view-interface}@<T>; |
1485 | 1485 | \end{itemdecl} |
1486 | 1486 |
|
|