[range.reverse.overview] Improve wording
Nobody has claimed this yet.
- Dominant language
- TeX
- Stars
- 221
- Forks
- 813
- Avg merge
- 16h 4m
- Merged PRs (30d)
- 36
Description
views::reverse is specialized for reverse_view and subrange. However, we check with:
Given a subexpression
E, the expressionviews::reverse(E)is expression-equivalent to:
(2.1) If the type ofEis a (possibly cv-qualified) specialization ofreverse_view, ...
(2.2) Otherwise, if the type ofEis cvsubrange<reverse_iterator<I>, reverse_iterator<I>, K>for some iterator type I and value K of type subrange_kind, ...
This is not the wording commonly used in <ranges> to determine specialization; we usually introduce a new type T and use something like this:
Given a subexpression
E, letTberemove_cvref_t<decltype((E))>.views::reverse(E)is expression-equivalent to:
(2.1) IfTdenotesreverse_view, ...
(2.2) Otherwise, ifTdenotessubrange<reverse_iterator<I>, reverse_iterator<I>, K>for some iterator typeIand valueKof typesubrange_kind, ...
See [range.take.overview], [range.drop.overview], [range.as.const.overview].
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at [range.reverse.overview] and compare its specialization wording with [range.take.overview], [range.drop.overview], and [range.as.const.overview]. Done means the reverse wording consistently introduces T as remove_cvref_t<decltype((E))> and uses T to describe the reverse_view and subrange cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100