Skip to content

P0896R4 <ranges> #39

Closed
Closed

Description

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    cxx20C++20 featurefixedSomething works now, yay!

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

        翻译: