Implemented C++23 features:
- P1899R3: "
stride_view
" (#2981) - P2446R2: "
views::as_rvalue
" (#3008) - P2278R4: "
cbegin
should always return a constant iterator" (#3043, #3187, #3234) - P2322R6: "
ranges::fold
" (#3099) - P2165R4: "Compatibility between
tuple
,pair
and tuple-like objects" (#3323, #3372) - P2404R3: "Move-only types for
equality_comparable_with
,totally_ordered_with
, andthree_way_comparable_with
" (#3345) - P2164R9: "
views::enumerate
" (#3472) - P2609R3: "Relaxing Ranges Just A Smidge" (#3486)
- P2321R2: "
zip
" (partial: #3508, #3546) - P0009R18: "MDSPAN" (#3534, #3535, #3560, #3564, #3580, #3586, #3593, #3603, #3615, #3616, #3632, #3672, #3673, #3674, #3682, #3688, #3689, #3690, #3693, #3694, #3698, #3701, #3702, #3715, #3749, #3767, #3786, #3821, #3825, #3829, #3847, #3852, #4559)
- P2736R2: "Referencing The Unicode Standard" (#3556)
- P2374R4: "
views::cartesian_product
" (#3561) - P2693R1: "Formatting
thread::id
,stacktrace_entry
, andbasic_stacktrace
" (#3861) - P2836R1: "
basic_const_iterator
Should Follow Its Underlying Type's Convertibility" (#4188) - P2286R8: "Formatting Ranges" (#3913, #4642)
- P2502R2: "std::generator: Synchronous Coroutine Generator for Ranges" (partial: #4534, #4558, #4574, #4619, #4620, #4621)
Implemented C++26 features:
Implemented LWG issues:
- LWG-3707: "
chunk_view::outer-iterator::value_type::size
should return unsigned type" (#2883) - LWG-3515: "[stacktrace.basic.nonmem]:
operator<<
should be less templatized" (#3236) - LWG-3810: "CTAD for
basic_format_args
" (#3421) - LWG-3848: "
slide_view
missingbase
accessor" (#3410) - LWG-3850: "
views::as_const
onempty_view<T>
should returnempty_view<const T>
" (#3423) - LWG-3851: "
chunk_view::inner-iterator
missing customiter_move
anditer_swap
" (#3517) - LWG-3853: "
basic_const_iterator<volatile int*>::operator->
is ill-formed" (#3468) - LWG-3862: "
basic_const_iterator
'scommon_type
specialization is underconstrained" (#3471) - LWG-3872: "
basic_const_iterator
should have customiter_move
" (#3470) - LWG-3875: "
std::ranges::repeat_view<T, IntegerClass>::iterator
may be ill-formed" (#3485) - LWG-3880: "Clarify
operator+=
complexity for{chunk,stride}_view::iterator
" (#3554)
Fixed bugs:
- #3113: "
<algorithm>
:ranges::is_permutation
's helper lambda does not specify return type" - #3380: "
<system_error>
: Use uglified[[clang::require_constant_initialization]]
attribute" - #3493: "
<ranges>
: Fix misused list-initializations" - #3551: "
<ranges>
: Fixranges::equal
for ranges with integer-classrange_difference_t
" - #3678: "Improve
_(Add|Multiply)_with_overflow_check
" - #3733: "
<ranges>
: Fixcartesian_product_view::size
in debug mode"
Reported bugs:
- #2312: "
<ranges>
: usingviews::reverse
onranges::reverse_view
lvalue is broken" - #3009: "
<iterator>
:move_sentinel
should be unwrappable" - #3010: "Range algorithms don't work when used with unwrappable iterators and custom sentinels"
- #3392: "
<ranges>
:views::repeat(...) | views::take(...)
is not always a valid range" (fixed by #3485) - #3550: "
<ranges>
:ranges::equal
does not work for ranges with integer-classrange_difference_t
" (fixed by #3551) - #3644: "
<chrono>
: Some (weird) durations still cannot be formatted" - #3648: "
<chrono>
:ambiguous_local_time
's message is slightly incorrect" - StephanTLavavej/STL#18: "
<variant>
: Constructor inheritance causes ICE when class in named module inherits from class imported frommodule std
" - StephanTLavavej/STL#23: "
<ranges>
: Usage ofranges::iterator_t
causes ICE"
Other improvements:
- #2696: "Update
_MSVC_STL_UPDATE
(may 2022)" - #3089: "Cleanup
views::as_rvalue
tests" - #3117: "Constexprize
bind_front
andbind_back
tests" - #3350: "Improve
views::elements
tests" - #3390: "Improve
views::drop(_while)
andviews::take(_while)
tests" - #3391: "
<ranges>
: Add missing test coverage forranges::view_interface::c(begin|end)
" - #3553: "
<ranges>
: Testc(begin|end)
members of range factories" - #3610: "Testing: Check new C++23 CPOs"
- #3753: "Make
P2415R2_owning_view/test.cpp
test something" - #3839: "
<ranges>
: Improve implementation of recommended practices inviews::cartesian_product
" - #3919: "Modernize
validate.cpp
: Use<print>
instead of<cstdio>
" - #3920: "Testing: check c(begin|end) members of some C++23 ranges"
Reported bugs:
- DevCom-10078204: "[C++20] (Exporting-)Importing module partition with class that inherits constructor from class imported from standard header unit causes ICE"
- DevCom-10187107: "const_cast cannot be used in constexpr context"
- DevCom-10269323: "[C++] Post-increment operator cannot refer to
this
pointer innoexcept
specifier" - DecCom-10302378: "[C++][Concepts][Regression] Expanding parameter pack in
std::invoke_result_t
may cause ICE" - DevCom-10359857: "[C++][Modules] std::mdspan is unusable with C++20 modules"
- DevCom-10360833: "[C++][Concepts] CTAD does not work with constrained constructors when
requires
expression contains nested alias" - DevCom-10398426: "
/analyze:only
: bogus "warning C6287: Redundant code" when expanding integer pack that contains identical values" - DevCom-10404496: "[C++][Modules] Using
std::views::iota
in member function in module causes ICE" - DevCom-10404498: "[C++][Modules] Using
std::views::repeat
in member functions gives bogus error about lack ofcompare
header"
Implemented C++23 features:
- P2443R1: "[libc++][ranges] Implement P2443R1:
views::chunk_by
" (Phabricator D144767) - P2770R0: "[libc++] P2770R0: "Stashing stashing iterators for proper flattening" (#66033)
- P2441R2: "[libc++] Implement
views::join_with
" (In progress: #65536) - P2602R2: "[libc++] P2602R2 Poison Pills are Too Toxic" (#74534)
- P2387R3: "[libc++] Implement
bind_back
" (#81055) - P2714R1: "[libc++] Implement
not_fn<NTTP>
" (In progress: #86133)
Reported bugs:
- #58315: "[libc++][format] Strings are incorrectly aligned when alignment is not specified"
- #59763: "[libc++][format] String literals inside of
tuple
andpair
should be escaped" - #60123: "[libc++][format] Negation of
LLONG_MIN
(UB) when formattingchrono::duration
" - #60164: "[libc++][format] Some contiguous ranges cannot be formatted due to lack of
data
orsize
member functions" - #60658: "[libc++][ranges]
views::drop
uses non-reserved identifiersdist
andclamped
" - #60986: "[libc++][ranges] Feature test macro for
views::as_rvalue
is missing" - #61314: "[libc++][format] Should
formatter<vec-bool-ref>
be default constructible without<format>
include?" - #62073: "[libc++][format] Should
operator<<(thread::id)
care about fmtflags in C++23?" - #62074: "[libc++][format][chrono] Problems with
chrono-specs
with short lifetime" - #90196: "[libc++][format] Formatting range with
m
range-type is incorrect"
Implemented features:
__builtin_FUNCSIG
: "[Clang][clang-cl] Implement__builtin_FUNCSIG
" (Phabricator D150183)
Reported bugs: