zoecarver
3450398738
[libcxx][ranges] Add contiguous_range.
...
Differential Revision: https://reviews.llvm.org/D104262
2021-06-24 10:40:05 -07:00
zoecarver
560170fa2d
[libcxx][views] Add drop_view.
...
The first view in the libc++ ranges library 🚀
Differential Revision: https://reviews.llvm.org/D102037
2021-06-23 10:10:50 -07:00
zoecarver
c820b494d6
[libcxx][ranges] Implement views::all.
...
Differential Revision: https://reviews.llvm.org/D102028
2021-06-14 10:41:00 -04:00
zoecarver
7eba4856c7
[libcxx][ranges] Add class ref_view.
...
Differential Revision: https://reviews.llvm.org/D102020
2021-06-11 11:02:39 -07:00
zoecarver
9106047ee3
[libcxx][ranges] Add range.subrange.
...
Basically the title.
Differential Revision: https://reviews.llvm.org/D102006
2021-06-11 09:34:41 -07:00
Christopher Di Bella
bbb3d03f93
[libcxx][ranges][nfc] moves view concepts into `__ranges/concepts.h`
2021-06-10 19:35:00 +00:00
zoecarver
d31a2e7554
[libcxx][ranges] Add `ranges::empty_view`.
...
Differential Revision: https://reviews.llvm.org/D103208
2021-06-04 09:38:49 -07:00
zoecarver
5671ff20d9
[libcxx] Implement view.interface.
...
This will unblock work on ranges::view. Based on D101396.
Refs http://eel.is/c++draft/view.interface .
Differential Revision: https://reviews.llvm.org/D101737
2021-06-01 12:34:47 -07:00
Arthur O'Dwyer
bfbd73f87d
[libc++] Alphabetize and include-what-you-use. NFCI.
...
Differential Revision: https://reviews.llvm.org/D102781
2021-05-29 19:54:48 -04:00
zoecarver
9db55b314b
[libcxx][ranges] Add ranges::data CPO.
...
This is the second to last one! Based on D101396. Depends on D100255. Refs D101079 and D101193.
Differential Revision: https://reviews.llvm.org/D101476
2021-05-21 11:07:23 -07:00
Christopher Di Bella
d8fad66149
[libcxx][ranges] adds concept `sized_range` and cleans up `ranges::size`
...
* adds `sized_range` and conformance tests
* moves `disable_sized_range` into namespace `std::ranges`
* removes explicit type parameter
Implements part of P0896 'The One Ranges Proposal'.
Differential Revision: https://reviews.llvm.org/D102434
2021-05-19 18:16:45 +00:00
zoecarver
e5d483f28a
[libcxx][ranges] Add ranges::empty CPO.
...
Depends on D101079. Refs D101189.
Differential Revision: https://reviews.llvm.org/D101193
2021-05-10 17:14:39 -07:00
zoecarver
6f1b10df91
[libcxx][ranges] Add ranges::ssize CPO.
...
Based on D101079.
Differential Revision: https://reviews.llvm.org/D101189
2021-05-04 21:50:00 -07:00
zoecarver
600686d75f
[libcxx][ranges] Add ranges::size CPO.
...
The begining of [range.prim].
Differential Revision: https://reviews.llvm.org/D101079
2021-05-04 21:50:00 -07:00
Louis Dionne
2021d272ad
[libc++] Implement ranges::view
...
Differential Revision: https://reviews.llvm.org/D101547
2021-05-04 11:05:58 -04:00
Christopher Di Bella
9c5d86aac5
[libcxx][iterator][ranges] adds `bidirectional_iterator` and `bidirectional_range`
...
Implements parts of:
* P0896R4 The One Ranges Proposal`
Depends on D100275.
Differential Revision: https://reviews.llvm.org/D100278
2021-05-03 21:21:33 +00:00
Christopher Di Bella
fa3e26266c
[libcxx][iterator][ranges] adds `forward_iterator` and `forward_range`
...
Implements parts of:
* P0896R4 The One Ranges Proposal`
Depends on D100271.
Differential Revision: https://reviews.llvm.org/D100275
2021-05-03 20:46:18 +00:00
Christopher Di Bella
c05d1eed35
[libcxx][iterator][ranges] adds `input_iterator` and `input_range`
...
Implements parts of:
* P0896R4 The One Ranges Proposal`
Depends on D100269.
Differential Revision: https://reviews.llvm.org/D100271
2021-04-30 22:49:06 +00:00
Christopher Di Bella
7c17731596
[libcxx][ranges] adds `ranges::range`, `ranges::common_range`, and range aliases
...
* `std::ranges::range`
* `std::ranges::sentinel_t`
* `std::ranges::range_difference_t`
* `std::ranges::range_value_t`
* `std::ranges::range_reference_t`
* `std::ranges::range_rvalue_reference_t`
* `std::ranges::common_range`
`range_size_t` depends on `sized_range` and will be added alongside it.
Implements parts of:
* P0896R4 The One Ranges Proposal`
Depends on D100255.
Differential Revision: https://reviews.llvm.org/D100269
2021-04-30 16:56:42 +00:00
Christopher Di Bella
5a3309f825
[libcxx][ranges] adds `range` access CPOs
...
* `std::ranges::begin`
* `std::ranges::cbegin`
* `std::ranges::end`
* `std::ranges::cend`
* `std::ranges::iterator` (required for `end`)
Implements parts of:
* P0896R4 The One Ranges Proposal`
Co-author: @zoecarver
Depends on D90999, D100160.
Differential Revision: https://reviews.llvm.org/D100255
2021-04-30 16:56:42 +00:00
Mark de Wever
01ace074fc
[libc++] Implements ranges::enable_borrowed_range
...
This is the initial patch to implement ranges in libc++.
Implements parts of:
- P0896R4 One Ranges Proposal
- P1870 forwarding-range is too subtle
- LWG3379 in several library names is misleading
Reviewed By: ldionne, #libc, cjdb, zoecarver, Quuxplusone
Differential Revision: https://reviews.llvm.org/D90999
2021-04-18 13:35:08 +02:00