› P3211R1
views::flat_map
Hewill Kang
H. Kang
2025-07-04
2025-07
Doc Date
2025-07-04
Abstract
We propose `views::flat_map`, a range adaptor that applies a function returning a range for each element, then flattens the result. This pattern, commonly known as *flat mapping*, is widespread in functional programming and data processing. Providing it as a dedicated view improves readability and expressiveness, and also opens opportunities for optimization in lazy evaluation contexts.
› P3216R1
views::slice
Hewill Kang
H. Kang
2025-06-29
2025-07
Doc Date
2025-06-29
Abstract
This paper proposes the Tier 1 adaptor `views::slice` (as described in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html)) to enhance the C++29 ranges library. Notably, this is the first standard range adaptor that accepts two arguments — `start` and `end` — to specify the interval [`start`, `end`) for slicing a range.
› P3220R1
views::take_before
Hewill Kang
H. Kang
2025-06-23
2025-07
Doc Date
2025-06-23
Abstract
This paper proposes the Tier 1 adaptor in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html): `views::delimit`, which is renamed into `views::take_before` along with its corresponding view class to improve the C++29 ranges facilities.
› P3411R3
`any_view`
Hui Xie
H. Xie
,
S. Levent Yilmaz
S. Yilmaz
,
Louis Dionne
L. Dionne
,
Patrick Roberts
P. Roberts
2025-06-19
2025-07
Doc Date
2025-06-19
Abstract
This paper proposes a new type-erased view: `std::ranges::any_view`. That type-erased view allows customizing the traversal category of the view, its value type and a few other properties. For example:
› P3705R2
A Sentinel for Null-Terminated Strings
Eddie Nolan
E. Nolan
2025-06-19
2025-07
Doc Date
2025-06-19
Abstract
Consider using `std::views::take` to get the first five characters from a string. If we pass a string literal with five or more characters, it looks okay:
› P3709R2
Reconsider parallel ranges::rotate_copy and ranges::reverse_copy
Ruslan Arutyunyan
R. Arutyunyan
,
Alexey Kukanov
A. Kukanov
2025-06-17
2025-07
Doc Date
2025-06-17
Disposition Date
2025-06Adopted
Abstract
This paper proposes changing the return value type for parallel `ranges::rotate_copy` and `ranges::reverse_copy` in [[P3179R9]](https://isocpp.org/files/papers/P3179R9.html).
› P3725R1
Filter View Extensions for Input Ranges
Nicolai Josuttis
N. Josuttis
2025-06-23
2025-07
Doc Date
2025-06-23
Abstract
Using filter views is both risky and non-intuitive. Let us look at some typical use cases.
› P3732R0
Numeric Range Algorithms
Ruslan Arutyunyan
R. Arutyunyan
,
Mark Hoemmen
M. Hoemmen
,
Alexey Kukanov
A. Kukanov
,
Bryce Adelstein Lelbach
B. Lelbach
,
Abhilash Majumder
A. Majumder
2025-06-27
2025-07
Doc Date
2025-06-27
Abstract
We propose `ranges` algorithm overloads (both parallel and non-parallel) for the `<numeric>` header.
› P3734R0
Not all predicates must be regular
Jan Schultke
J. Schultke
2025-06-14
2025-07
Doc Date
2025-06-14
Abstract
Some algorithms, such as `std::remove_if` and `std::copy_if` are over-constrained by requiring the predicate to be regular, despite the predicate visiting elements exactly once, making the requirement meaningless. These constraints should be relaxed.
› P3735R0
partial_sort_n, nth_element_n
Jan Schultke
J. Schultke
2025-06-28
2025-07
Doc Date
2025-06-28
Abstract
The `partial_sort`, and `nth_element` algorithms require the user to "manually offset" iterators, which is neither ergonomic nor safe. I propose `_n` variants of these algorithms in the style of `shift_left`.
› P3741R0
views::set_operations
Hewill Kang
H. Kang
2025-06-22
2025-07
Doc Date
2025-06-22
Abstract
This paper proposes four range adaptors for set operations rated as Tier 3 in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html), namely `views::set_difference`, `views::set_intersection`, `views::set_union`, and `views::set_symmetric_difference`, to extend the breadth of Ranges.
› P3757R0
Remove value-type invocability requirement from indirect unary callable concepts
Hewill Kang
H. Kang
2025-06-22
2025-07
Doc Date
2025-06-22
Abstract
This is the follow up of [P2997](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2997r1.html).
› P3763R0
Remove redundant reserve_hint members from view classes
Hewill Kang
H. Kang
2025-06-21
2025-07
Doc Date
2025-06-21
Abstract
This paper removes the `reserve_hint` members of view classes when their `size` members are already provided.