Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[range.refinements] Simplify viewable_range #3563

Closed
wants to merge 1 commit into from

Conversation

CaseyCarter
Copy link
Contributor

Since pointer types cannot model view, view<decay_t<T>> and view<remove_cvref_t<T>> are equivalent for a type T. LWG prefers remove_cvref_t to decay_t in cases where the two are equivalent.

Since pointer types cannot model `view`, `view<decay_t<T>>` and `view<remove_cvref_t<T>>` are equivalent for a type `T`. LWG prefers `remove_cvref_t` to `decay_t` in cases where the two are equivalent.
CaseyCarter added a commit to CaseyCarter/range-v3 that referenced this pull request Dec 19, 2019
* fold `range_impl_` concept back into `range`
* Replace `forwarding_range_` concept with `safe_range`

Drive-by:
* Remove unused `#define CPP_noop`
* Use `view<uncvref_t<T>>` instead of `view<decay_t<T>>` in the definition of `viewable_range` since pointers cannot model `view`. (Per the editorialish change I submitted in cplusplus/draft#3563).
@zygoloid
Copy link
Member

This is a normative change: while it might not affect the cases under which viewable_range is satisfied, it does affect the subsumption relationship between viewable_range<T> and view<decay_t<T>>. Please file an LWG issue if you want to see this changed.

@zygoloid zygoloid closed this Jan 14, 2020
@CaseyCarter CaseyCarter deleted the patch-6 branch January 14, 2020 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants