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

P0896R4 <ranges> #39

Closed
StephanTLavavej opened this issue Sep 6, 2019 · 9 comments · Fixed by #1748
Closed

P0896R4 <ranges> #39

StephanTLavavej opened this issue Sep 6, 2019 · 9 comments · Fixed by #1748
Labels
cxx20 C++20 feature fixed Something works now, yay!
Milestone

Comments

@StephanTLavavej
Copy link
Member

StephanTLavavej commented Sep 6, 2019

P0896R4 <ranges>
P1035R7 Input Range Adaptors
P1207R4 Movability Of Single-Pass Iterators
P1243R4 Rangify New Algorithms
P1248R1 Fixing Relations
P1252R2 Ranges Design Cleanup
P1391R4 Range Constructor For string_view
P1456R1 Move-Only Views
P1474R1 Helpful Pointers For contiguous_iterator
P1522R1 Iterator Difference Type And Integer Overflow
P1523R1 Views And Size Types
P1638R1 basic_istream_view::iterator Should Not Be Copyable
P1716R3 Range Comparison Algorithms Are Over-Constrained
P1739R4 Avoiding Template Bloat For Ranges
P1862R1 Range Adaptors For Non-Copyable Iterators
P1870R1 safe_range
P1871R1 disable_sized_sentinel_for
P1878R1 Constraining Readable Types
P1970R2 ranges::ssize
P1983R0 Fixing Minor Ranges Issues
P1994R1 elements_view Needs Its Own sentinel
P2091R0 Fixing Issues With Range Access CPOs
P2106R0 Range Algorithm Result Types

LWG-3169 ranges permutation generators discard useful information
LWG-3173 Enable CTAD for ref-view
LWG-3179 subrange should always model Range
LWG-3180 Inconsistently named return type for ranges::minmax_element
LWG-3183 Normative permission to specialize Ranges variable templates
LWG-3186 ranges removal, partition, and partial_sort_copy algorithms discard useful information
LWG-3191 std::ranges::shuffle synopsis does not match algorithm definition
LWG-3276 Class split_view::outer_iterator::value_type should inherit from view_interface
LWG-3280 View converting constructors can cause constraint recursion and are unneeded
LWG-3281 Conversion from pair-like types to subrange is a silent semantic promotion
LWG-3282 subrange converting constructor should disallow derived to base conversions
LWG-3286 ranges::size is not required to be valid after a call to ranges::begin on an input range
LWG-3291 iota_view::iterator has the wrong iterator_category
LWG-3292 iota_view is under-constrained
LWG-3299 Pointers don't need customized iterator behavior
LWG-3301 transform_view::iterator has incorrect iterator_category
LWG-3302 Range adaptor objects keys and values are unspecified
LWG-3313 join_view::iterator::operator-- is incorrectly constrained
LWG-3323 has-tuple-element helper concept needs convertible_to
LWG-3325 Constrain return type of transformation function for transform_view
LWG-3335 range_size_t and views::all_t
LWG-3355 The memory algorithms should support move-only input iterators introduced by P1207
LWG-3363 drop_while_view should opt-out of sized_range
LWG-3364 Initialize data members of ranges and their iterators
LWG-3381 begin and data must agree for contiguous_range
LWG-3384 transform_view::sentinel has an incorrect operator-
LWG-3385 common_iterator is not sufficiently constrained for non-copyable iterators
LWG-3387 [range.reverse.view] reverse_view<V> unintentionally requires range<const V>
LWG-3388 view iterator types have ill-formed <=> operators
LWG-3389 A move-only iterator still does not have a counted_iterator
LWG-3397 ranges::basic_istream_view::iterator should not provide iterator_category
LWG-3398 tuple_element_t is also wrong for const subrange
LWG-3474 Nesting join_views is broken because of CTAD
LWG-3500 join_view::iterator::operator->() is bogus
LWG-3505 split_view::outer-iterator::operator++ misspecified

Feature-test macro as of WG21-N4842, increased by WG21-P1902:
#define __cpp_lib_ranges 201911L

@StephanTLavavej StephanTLavavej added the cxx20 C++20 feature label Sep 6, 2019
CaseyCarter added a commit to CaseyCarter/STL that referenced this issue Mar 15, 2020
Rename the variable template `disable_sized_sentinel` to `disable_sized_sentinel_for` for consistency with the name of the associated concept `sized_sentinel_for`.

Addresses microsoft#39.
CaseyCarter added a commit that referenced this issue Mar 16, 2020
Rename the variable template `disable_sized_sentinel` to `disable_sized_sentinel_for` for consistency with the name of the associated concept `sized_sentinel_for`.

Addresses #39.
@CaseyCarter
Copy link
Member

CaseyCarter commented Mar 16, 2020

Detailed breakdown / rough plan-of-action for Ranges:

@cbezault cbezault added this to the Conformance milestone May 7, 2020
CaseyCarter added a commit to CaseyCarter/STL that referenced this issue Jun 15, 2020
Implement helper `ranges::_Rewrap_subrange` to use in `ranges::search` and `ranges::find_end`.

Perma-workaround VSO-1141368, a failure in MSVC to properly handle lifetime extension when binding a temporary returned from a non-static member function to a reference in a constexpr context. (This seems to also affect structured bindings which look similar "under the covers".)

Partially addresses microsoft#39.
miscco added a commit to miscco/STL that referenced this issue Sep 18, 2020
@AdamBucior

This comment has been minimized.

@StephanTLavavej

This comment has been minimized.

miscco added a commit to miscco/STL that referenced this issue Sep 21, 2020
CaseyCarter added a commit that referenced this issue Nov 4, 2020
Partially addresses #39.

Co-authored-by: Adam Bucior <[email protected]>
Co-authored-by: Casey Carter <[email protected]>
Co-authored-by: Stephan T. Lavavej <[email protected]>
miscco added a commit to miscco/STL that referenced this issue Nov 13, 2020
miscco added a commit to miscco/STL that referenced this issue Nov 14, 2020
miscco added a commit to miscco/STL that referenced this issue Jan 9, 2021
miscco added a commit to miscco/STL that referenced this issue Jan 23, 2021
miscco added a commit to miscco/STL that referenced this issue Feb 20, 2021
CaseyCarter added a commit to CaseyCarter/STL that referenced this issue Mar 17, 2021
Update list of implemented proposals

I have verified that all proposals and LWG issues listed in microsoft#39 are implemented either on main, in microsoft#1436, or in microsoft#1731.
CaseyCarter added a commit to CaseyCarter/STL that referenced this issue Mar 17, 2021
Update list of implemented proposals

I have verified that all 23 proposals and 35 LWG issues listed in microsoft#39 are implemented either on main, in microsoft#1436, or in microsoft#1731.
CaseyCarter added a commit that referenced this issue Mar 18, 2021
Update list of implemented proposals

I have verified that all 23 proposals and 35 LWG issues listed in #39 are implemented either on main, in #1436, or in #1731.

Fixes #39
@CaseyCarter CaseyCarter added fixed Something works now, yay! and removed work in progress labels Mar 18, 2021
@CaseyCarter
Copy link
Member

We need to file separate issues for these future work items:

So filed, except for:

  • Design issue: should viewable_range reject lvalues of move-only view types? (This is LWG-3481; we don't need to track it here.)

for which I filed an LWG issue a while back.

@CaseyCarter CaseyCarter removed their assignment Oct 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cxx20 C++20 feature fixed Something works now, yay!
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants