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
zoecarver
6ffc41b014
[libcxx][ranges] Add `random_access_{iterator,range}`.
...
Differential Revision: https://reviews.llvm.org/D101316
2021-05-04 21:42:55 -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
Arthur O'Dwyer
7e9cf2075a
[libc++] s/begin.h/access.h/ in comments. NFCI.
2021-04-30 20:07:00 -04: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