|
54 | 54 | concept range = @\seebelow@; |
55 | 55 |
|
56 | 56 | template<class T> |
57 | | - inline constexpr bool enable_borrowed_range = false; |
| 57 | + constexpr bool enable_borrowed_range = false; |
58 | 58 |
|
59 | 59 | template<class T> |
60 | 60 | concept borrowed_range = @\seebelow@; |
|
76 | 76 |
|
77 | 77 | // \ref{range.sized}, sized ranges |
78 | 78 | template<class> |
79 | | - inline constexpr bool disable_sized_range = false; |
| 79 | + constexpr bool disable_sized_range = false; |
80 | 80 |
|
81 | 81 | template<class T> |
82 | 82 | concept sized_range = @\seebelow@; |
83 | 83 |
|
84 | 84 | // \ref{range.view}, views |
85 | 85 | template<class T> |
86 | | - inline constexpr bool enable_view = @\seebelow@; |
| 86 | + constexpr bool enable_view = @\seebelow@; |
87 | 87 |
|
88 | 88 | struct view_base {}; |
89 | 89 |
|
|
128 | 128 | class subrange; |
129 | 129 |
|
130 | 130 | template<class I, class S, subrange_kind K> |
131 | | - inline constexpr bool enable_borrowed_range<subrange<I, S, K>> = true; |
| 131 | + constexpr bool enable_borrowed_range<subrange<I, S, K>> = true; |
132 | 132 |
|
133 | 133 | // \ref{range.dangling}, dangling iterator handling |
134 | 134 | struct dangling; |
|
145 | 145 | class empty_view; |
146 | 146 |
|
147 | 147 | template<class T> |
148 | | - inline constexpr bool enable_borrowed_range<empty_view<T>> = true; |
| 148 | + constexpr bool enable_borrowed_range<empty_view<T>> = true; |
149 | 149 |
|
150 | 150 | namespace views { |
151 | 151 | template<class T> |
152 | | - inline constexpr empty_view<T> @\libmember{empty}{views}@{}; |
| 152 | + constexpr empty_view<T> @\libmember{empty}{views}@{}; |
153 | 153 | } |
154 | 154 |
|
155 | 155 | // \ref{range.single}, single view |
|
168 | 168 | class iota_view; |
169 | 169 |
|
170 | 170 | template<class W, class Bound> |
171 | | - inline constexpr bool enable_borrowed_range<iota_view<W, Bound>> = true; |
| 171 | + constexpr bool enable_borrowed_range<iota_view<W, Bound>> = true; |
172 | 172 |
|
173 | 173 | namespace views { inline constexpr @\unspec@ iota = @\unspec@; } |
174 | 174 |
|
|
196 | 196 | class ref_view; |
197 | 197 |
|
198 | 198 | template<class T> |
199 | | - inline constexpr bool enable_borrowed_range<ref_view<T>> = true; |
| 199 | + constexpr bool enable_borrowed_range<ref_view<T>> = true; |
200 | 200 |
|
201 | 201 | // \ref{range.owning.view}, owning view |
202 | 202 | template<range R> |
|
226 | 226 | template<@\libconcept{view}@> class take_view; |
227 | 227 |
|
228 | 228 | template<class T> |
229 | | - inline constexpr bool enable_borrowed_range<take_view<T>> = enable_borrowed_range<T>; |
| 229 | + constexpr bool enable_borrowed_range<take_view<T>> = enable_borrowed_range<T>; |
230 | 230 |
|
231 | 231 | namespace views { inline constexpr @\unspec@ take = @\unspec@; } |
232 | 232 |
|
|
243 | 243 | class drop_view; |
244 | 244 |
|
245 | 245 | template<class T> |
246 | | - inline constexpr bool enable_borrowed_range<drop_view<T>> = enable_borrowed_range<T>; |
| 246 | + constexpr bool enable_borrowed_range<drop_view<T>> = enable_borrowed_range<T>; |
247 | 247 |
|
248 | 248 | namespace views { inline constexpr @\unspec@ drop = @\unspec@; } |
249 | 249 |
|
|
254 | 254 | class drop_while_view; |
255 | 255 |
|
256 | 256 | template<class T, class Pred> |
257 | | - inline constexpr bool enable_borrowed_range<drop_while_view<T, Pred>> = |
258 | | - enable_borrowed_range<T>; |
| 257 | + constexpr bool enable_borrowed_range<drop_while_view<T, Pred>> = enable_borrowed_range<T>; |
259 | 258 |
|
260 | 259 | namespace views { inline constexpr @\unspec@ drop_while = @\unspec@; } |
261 | 260 |
|
|
296 | 295 | class common_view; |
297 | 296 |
|
298 | 297 | template<class T> |
299 | | - inline constexpr bool enable_borrowed_range<common_view<T>> = enable_borrowed_range<T>; |
| 298 | + constexpr bool enable_borrowed_range<common_view<T>> = enable_borrowed_range<T>; |
300 | 299 |
|
301 | 300 | namespace views { inline constexpr @\unspec@ common = @\unspec@; } |
302 | 301 |
|
|
306 | 305 | class reverse_view; |
307 | 306 |
|
308 | 307 | template<class T> |
309 | | - inline constexpr bool enable_borrowed_range<reverse_view<T>> = enable_borrowed_range<T>; |
| 308 | + constexpr bool enable_borrowed_range<reverse_view<T>> = enable_borrowed_range<T>; |
310 | 309 |
|
311 | 310 | namespace views { inline constexpr @\unspec@ reverse = @\unspec@; } |
312 | 311 |
|
|
316 | 315 | class elements_view; |
317 | 316 |
|
318 | 317 | template<class T, size_t N> |
319 | | - inline constexpr bool enable_borrowed_range<elements_view<T, N>> = enable_borrowed_range<T>; |
| 318 | + constexpr bool enable_borrowed_range<elements_view<T, N>> = enable_borrowed_range<T>; |
320 | 319 |
|
321 | 320 | template<class R> |
322 | 321 | using @\libglobal{keys_view}@ = elements_view<R, 0>; |
|
325 | 324 |
|
326 | 325 | namespace views { |
327 | 326 | template<size_t N> |
328 | | - inline constexpr @\unspec@ elements = @\unspec@; |
| 327 | + constexpr @\unspec@ elements = @\unspec@; |
329 | 328 | inline constexpr auto @\libmember{keys}{views}@ = elements<0>; |
330 | 329 | inline constexpr auto @\libmember{values}{views}@ = elements<1>; |
331 | 330 | } |
|
1143 | 1142 | \indexlibraryglobal{enable_borrowed_range}% |
1144 | 1143 | \begin{itemdecl} |
1145 | 1144 | template<class> |
1146 | | - inline constexpr bool enable_borrowed_range = false; |
| 1145 | + constexpr bool enable_borrowed_range = false; |
1147 | 1146 | \end{itemdecl} |
1148 | 1147 |
|
1149 | 1148 | \begin{itemdescr} |
|
1210 | 1209 | \indexlibraryglobal{disable_sized_range}% |
1211 | 1210 | \begin{itemdecl} |
1212 | 1211 | template<class> |
1213 | | - inline constexpr bool disable_sized_range = false; |
| 1212 | + constexpr bool disable_sized_range = false; |
1214 | 1213 | \end{itemdecl} |
1215 | 1214 |
|
1216 | 1215 | \begin{itemdescr} |
|
1302 | 1301 | \indexlibraryglobal{enable_view}% |
1303 | 1302 | \begin{itemdecl} |
1304 | 1303 | template<class T> |
1305 | | - inline constexpr bool @\exposidnc{is-derived-from-view-interface}@ = @\seebelownc@; // \expos |
| 1304 | + constexpr bool @\exposidnc{is-derived-from-view-interface}@ = @\seebelownc@; // \expos |
1306 | 1305 | template<class T> |
1307 | | - inline constexpr bool enable_view = |
| 1306 | + constexpr bool enable_view = |
1308 | 1307 | @\libconcept{derived_from}@<T, view_base> || @\exposid{is-derived-from-view-interface}@<T>; |
1309 | 1308 | \end{itemdecl} |
1310 | 1309 |
|
|
0 commit comments