Skip to content

Commit 7cb3938

Browse files
authored
Merge 2021-02 LWG Motion 6
2 parents 796fa8a + 95368a5 commit 7cb3938

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

source/ranges.tex

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,9 @@
214214
// \ref{range.take}, take view
215215
template<@\libconcept{view}@> class take_view;
216216

217+
template<class T>
218+
inline constexpr bool enable_borrowed_range<take_view<T>> = enable_borrowed_range<T>;
219+
217220
namespace views { inline constexpr @\unspec@ take = @\unspec@; }
218221

219222
// \ref{range.take.while}, take while view
@@ -228,6 +231,9 @@
228231
template<@\libconcept{view}@ V>
229232
class drop_view;
230233

234+
template<class T>
235+
inline constexpr bool enable_borrowed_range<drop_view<T>> = enable_borrowed_range<T>;
236+
231237
namespace views { inline constexpr @\unspec@ drop = @\unspec@; }
232238

233239
// \ref{range.drop.while}, drop while view
@@ -236,6 +242,10 @@
236242
@\libconcept{indirect_unary_predicate}@<const Pred, iterator_t<V>>
237243
class drop_while_view;
238244

245+
template<class T, class Pred>
246+
inline constexpr bool enable_borrowed_range<drop_while_view<T, Pred>> =
247+
enable_borrowed_range<T>;
248+
239249
namespace views { inline constexpr @\unspec@ drop_while = @\unspec@; }
240250

241251
// \ref{range.join}, join view
@@ -267,20 +277,29 @@
267277
requires (!@\libconcept{common_range}@<V> && copyable<iterator_t<V>>)
268278
class common_view;
269279

280+
template<class T>
281+
inline constexpr bool enable_borrowed_range<common_view<T>> = enable_borrowed_range<T>;
282+
270283
namespace views { inline constexpr @\unspec@ common = @\unspec@; }
271284

272285
// \ref{range.reverse}, reverse view
273286
template<@\libconcept{view}@ V>
274287
requires @\libconcept{bidirectional_range}@<V>
275288
class reverse_view;
276289

290+
template<class T>
291+
inline constexpr bool enable_borrowed_range<reverse_view<T>> = enable_borrowed_range<T>;
292+
277293
namespace views { inline constexpr @\unspec@ reverse = @\unspec@; }
278294

279295
// \ref{range.elements}, elements view
280296
template<@\libconcept{input_range}@ V, size_t N>
281297
requires @\seebelow@
282298
class elements_view;
283299

300+
template<class T, size_t N>
301+
inline constexpr bool enable_borrowed_range<elements_view<T, N>> = enable_borrowed_range<T>;
302+
284303
template<class R>
285304
using keys_view = elements_view<views::all_t<R>, 0>;
286305
template<class R>

0 commit comments

Comments
 (0)