Files
clang-p2996/libcxx/docs/Status/Cxx2bIssues.csv
Mark de Wever 9e5c293492 [libc++] Removes __cpp_lib_monadic_optional.
P0798R8 "Monadic operations for std::optional" has been implemented, so
this LWG issue can be adopted.

During review it was discovered another paper bumped the macro. The
part affecting optional of this paper is done, the variant isn't. The
status page is updated to reflect the current state.

Implements
- LWG 3621 Remove feature-test macro __cpp_lib_monadic_optional

Updates status of
- P2231R1 Missing constexpr in std::optional and std::variant

Reviewed By: #libc, philnik, ldionne

Differential Revision: https://reviews.llvm.org/D125813
2022-05-31 19:18:34 +02:00

22 KiB

1Issue #Issue NameMeetingStatusFirst released versionLabels
2`2839 <https://wg21.link/LWG2839>`__Self-move-assignment of library types, againNovember 2020|Nothing To Do|
3`3117 <https://wg21.link/LWG3117>`__Missing ``packaged_task`` deduction guidesNovember 2020
4`3143 <https://wg21.link/LWG3143>`__``monotonic_buffer_resource`` growth policy is unclearNovember 2020
5`3195 <https://wg21.link/LWG3195>`__What is the stored pointer value of an empty ``weak_ptr``?November 2020|Nothing To Do|
6`3211 <https://wg21.link/LWG3211>`__``std::tuple<>`` should be trivially constructibleNovember 2020|Complete|9.0
7`3236 <https://wg21.link/LWG3236>`__Random access iterator requirements lack limiting relational operators domain to comparing those from the same rangeNovember 2020|Nothing To Do||ranges|
8`3265 <https://wg21.link/LWG3265>`__``move_iterator``'s conversions are more broken after P1207November 2020Fixed by `LWG3435 <https://wg21.link/LWG3435>`__
9`3435 <https://wg21.link/LWG3435>`__``three_way_comparable_with<reverse_iterator<int*>, reverse_iterator<const int*>>``November 2020|Complete|13.0
10`3432 <https://wg21.link/LWG3432>`__Missing requirement for ``comparison_category``November 2020|spaceship|
11`3447 <https://wg21.link/LWG3447>`__Deduction guides for ``take_view`` and ``drop_view`` have different constraintsNovember 2020|Complete|14.0
12`3450 <https://wg21.link/LWG3450>`__The const overloads of ``take_while_view::begin/end`` are underconstrainedNovember 2020|ranges|
13`3464 <https://wg21.link/LWG3464>`__``istream::gcount()`` can overflowNovember 2020
14`2731 <https://wg21.link/LWG2731>`__Existence of ``lock_guard<MutexTypes...>::mutex_type`` typedef unclearNovember 2020|Complete|5.0
15`2743 <https://wg21.link/LWG2743>`__P0083R3 ``node_handle`` private members missing "exposition only" commentNovember 2020|Nothing To Do|
16`2820 <https://wg21.link/LWG2820>`__Clarify ``<cstdint>`` macrosNovember 2020|Nothing To Do|
17`3120 <https://wg21.link/LWG3120>`__Unclear behavior of ``monotonic_buffer_resource::release()``November 2020
18`3170 <https://wg21.link/LWG3170>`__``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equalNovember 2020
19`3036 <https://wg21.link/LWG3036>`__``polymorphic_allocator::destroy`` is extraneousNovember 2020
20`3171 <https://wg21.link/LWG3171>`__LWG2989 breaks ``directory_entry`` stream insertionNovember 2020|Complete|14.0
21`3306 <https://wg21.link/LWG3306>`__``ranges::advance`` violates its preconditionsNovember 2020|Complete|14.0|ranges|
22`3403 <https://wg21.link/LWG3403>`__Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``November 2020|ranges|
23`3404 <https://wg21.link/LWG3404>`__Finish removing subrange's conversions from pair-likeNovember 2020|ranges|
24`3405 <https://wg21.link/LWG3405>`__``common_view``'s converting constructor is bad, tooNovember 2020|Complete|14.0|ranges|
25`3406 <https://wg21.link/LWG3406>`__``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraintsNovember 2020|ranges|
26`3419 <https://wg21.link/LWG3419>`__[algorithms.requirements]/15 doesn't reserve as many rights as it intends toNovember 2020|Nothing To Do|
27`3420 <https://wg21.link/LWG3420>`__cpp17-iterator should check that the type looks like an iterator firstNovember 2020|Complete|14.0|ranges|
28`3421 <https://wg21.link/LWG3421>`__Imperfect ADL emulation for boolean-testableNovember 2020|Nothing To Do||ranges|
29`3425 <https://wg21.link/LWG3425>`__``condition_variable_any`` fails to constrain its Lock parametersNovember 2020|Nothing To Do|
30`3426 <https://wg21.link/LWG3426>`__``operator<=>(const unique_ptr<T, D>&, nullptr_t)`` can't get no satisfactionNovember 2020|spaceship|
31`3427 <https://wg21.link/LWG3427>`__``operator<=>(const shared_ptr<T>&, nullptr_t)`` definition ill-formedNovember 2020|spaceship|
32`3428 <https://wg21.link/LWG3428>`__``single_view``'s in place constructor should be explicitNovember 2020|Complete|14.0|ranges|
33`3434 <https://wg21.link/LWG3434>`__``ios_base`` never reclaims memory for iarray and parrayNovember 2020|Nothing To Do|
34`3437 <https://wg21.link/LWG3437>`__``__cpp_lib_polymorphic_allocator`` is in the wrong headerNovember 2020|Complete|14.0
35`3446 <https://wg21.link/LWG3446>`__``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``November 2020|Complete|14.0|ranges|
36`3448 <https://wg21.link/LWG3448>`__``transform_view``'s ``sentinel<false>`` not comparable with ``iterator<true>``November 2020|ranges|
37`3449 <https://wg21.link/LWG3449>`__``take_view`` and ``take_while_view``'s ``sentinel<false>`` not comparable with their ``const iterator``November 2020|ranges|
38`3453 <https://wg21.link/LWG3453>`__Generic code cannot call ``ranges::advance(i, s)``November 2020|Nothing To Do||ranges|
39`3455 <https://wg21.link/LWG3455>`__Incorrect Postconditions on ``unique_ptr`` move assignmentNovember 2020|Nothing To Do|
40`3460 <https://wg21.link/LWG3460>`__Unimplementable ``noop_coroutine_handle`` guaranteesNovember 2020|Complete|14.0
41`3461 <https://wg21.link/LWG3461>`__``convertible_to``'s description mishandles cv-qualified ``void``November 2020|Nothing To Do|
42`3465 <https://wg21.link/LWG3465>`__``compare_partial_order_fallback`` requires ``F < E``November 2020|Complete|14.0|spaceship|
43`3466 <https://wg21.link/LWG3466>`__Specify the requirements for ``promise``/``future``/``shared_future`` consistentlyNovember 2020|Nothing To Do|
44`3467 <https://wg21.link/LWG3467>`__``bool`` can't be an integer-like typeNovember 2020|Complete|14.0
45`3472 <https://wg21.link/LWG3472>`__``counted_iterator`` is missing preconditionsNovember 2020|Complete|14.0|ranges|
46`3473 <https://wg21.link/LWG3473>`__Normative encouragement in non-normative noteNovember 2020|Complete|15.0|format|
47`3474 <https://wg21.link/LWG3474>`__Nesting ``join_views`` is broken because of CTADNovember 2020|Complete|15.0|ranges|
48`3476 <https://wg21.link/LWG3476>`__``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parametersNovember 2020
49`3477 <https://wg21.link/LWG3477>`__Simplify constraints for ``semiregular-box``November 2020|ranges|
50`3482 <https://wg21.link/LWG3482>`__``drop_view``'s const begin should additionally require ``sized_range``November 2020|Complete|14.0|ranges|
51`3483 <https://wg21.link/LWG3483>`__``transform_view::iterator``'s difference is overconstrainedNovember 2020|Complete|14.0|ranges|
52
53`3391 <https://wg21.link/LWG3391>`__Problems with ``counted_iterator``/``move_iterator::base() const &``February 2021|ranges|
54`3433 <https://wg21.link/LWG3433>`__``subrange::advance(n)`` has UB when ``n < 0``February 2021|Complete|14.0|ranges|
55`3490 <https://wg21.link/LWG3490>`__``ranges::drop_while_view::begin()`` is missing a preconditionFebruary 2021|Nothing To Do||ranges|
56`3492 <https://wg21.link/LWG3492>`__Minimal improvements to ``elements_view::iterator``February 2021|ranges|
57`3494 <https://wg21.link/LWG3494>`__Allow ranges to be conditionally borrowedFebruary 2021Superseded by `P2017R1 <https://wg21.link/P2017R1>`__|ranges|
58`3495 <https://wg21.link/LWG3495>`__``constexpr launder`` makes pointers to inactive members of unions usableFebruary 2021|Nothing To Do|
59`3500 <https://wg21.link/LWG3500>`__``join_view::iterator::operator->()`` is bogusFebruary 2021|Complete|14.0|ranges|
60`3502 <https://wg21.link/LWG3502>`__``elements_view`` should not be allowed to return dangling referenceFebruary 2021|ranges|
61`3505 <https://wg21.link/LWG3505>`__``split_view::outer-iterator::operator++`` misspecifiedFebruary 2021|ranges|
62
63`2774 <https://wg21.link/LWG2774>`__``std::function`` construction vs assignmentJune 2021
64`2818 <https://wg21.link/LWG2818>`__``::std::`` everywhere rule needs tweakingJune 2021|Nothing To Do|
65`2997 <https://wg21.link/LWG2997>`__LWG 491 and the specification of ``{forward_,}list::unique``June 2021
66`3410 <https://wg21.link/LWG3410>`__``lexicographical_compare_three_way`` is overspecifiedJune 2021|spaceship|
67`3430 <https://wg21.link/LWG3430>`__``std::fstream`` & co. should be constructible from string_viewJune 2021
68`3462 <https://wg21.link/LWG3462>`__§[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()``June 2021|format|
69`3481 <https://wg21.link/LWG3481>`__``viewable_range`` mishandles lvalue move-only viewsJune 2021Superseded by `P2415R2 <https://wg21.link/P2415R2>`__|ranges|
70`3506 <https://wg21.link/LWG3506>`__Missing allocator-extended constructors for ``priority_queue``June 2021|Complete|14.0
71`3517 <https://wg21.link/LWG3517>`__``join_view::iterator``'s ``iter_swap`` is underconstrainedJune 2021|Complete|14.0|ranges|
72`3518 <https://wg21.link/LWG3518>`__Exception requirements on char trait operations unclearJune 2021|Nothing To Do|
73`3519 <https://wg21.link/LWG3519>`__Incomplete synopses for ``<random>`` classesJune 2021
74`3520 <https://wg21.link/LWG3520>`__``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``June 2021|Complete|14.0|ranges|
75`3521 <https://wg21.link/LWG3521>`__Overly strict requirements on ``qsort`` and ``bsearch``June 2021|Nothing To Do|
76`3522 <https://wg21.link/LWG3522>`__Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructorsJune 2021|Complete|14.0|ranges|
77`3523 <https://wg21.link/LWG3523>`__``iota_view::sentinel`` is not always ``iota_view``'s sentinelJune 2021|ranges|
78`3526 <https://wg21.link/LWG3526>`__Return types of ``uses_allocator_construction_args`` unspecifiedJune 2021
79`3527 <https://wg21.link/LWG3527>`__``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectlyJune 2021
80`3528 <https://wg21.link/LWG3528>`__``make_from_tuple`` can perform (the equivalent of) a C-style castJune 2021
81`3529 <https://wg21.link/LWG3529>`__``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``June 2021|Complete|14.0
82`3530 <https://wg21.link/LWG3530>`__``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checksJune 2021
83`3532 <https://wg21.link/LWG3532>`__``split_view<V, P>::inner-iterator<true>::operator++(int)`` should depend on ``Base``June 2021|ranges|
84`3533 <https://wg21.link/LWG3533>`__Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``June 2021|Complete|14.0|ranges|
85`3536 <https://wg21.link/LWG3536>`__Should ``chrono::from_stream()`` assign zero to duration for failure?June 2021|chrono|
86`3539 <https://wg21.link/LWG3539>`__``format_to`` must not copy models of ``output_iterator<const charT&>``June 2021|format|
87`3540 <https://wg21.link/LWG3540>`__§[format.arg] There should be no const in ``basic_format_arg(const T* p)``June 2021|Complete|14.0|format|
88`3541 <https://wg21.link/LWG3541>`__``indirectly_readable_traits`` should be SFINAE-friendly for all typesJune 2021|Complete|14.0|ranges|
89`3542 <https://wg21.link/LWG3542>`__``basic_format_arg`` mishandles ``basic_string_view`` with custom traitsJune 2021|Complete|14.0|format|
90`3543 <https://wg21.link/LWG3543>`__Definition of when ``counted_iterators`` refer to the same sequence isn't quite rightJune 2021|Nothing To Do||ranges|
91`3544 <https://wg21.link/LWG3544>`__``format-arg-store::args`` is unintentionally not exposition-onlyJune 2021|Complete|14.0|format|
92`3546 <https://wg21.link/LWG3546>`__``common_iterator``'s postfix-proxy is not quite rightJune 2021|ranges|
93`3548 <https://wg21.link/LWG3548>`__``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleterJune 2021|Complete|15.0
94`3549 <https://wg21.link/LWG3549>`__``view_interface`` is overspecified to derive from ``view_base``June 2021|Complete|14.0|ranges|
95`3551 <https://wg21.link/LWG3551>`__``borrowed_{iterator,subrange}_t`` are overspecifiedJune 2021|Nothing To Do||ranges|
96`3552 <https://wg21.link/LWG3552>`__Parallel specialized memory algorithms should require forward iteratorsJune 2021
97`3553 <https://wg21.link/LWG3553>`__Useless constraint in ``split_view::outer-iterator::value_type::begin()``June 2021|ranges|
98`3555 <https://wg21.link/LWG3555>`__``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying rangeJune 2021|ranges|
99
100`2191 <https://wg21.link/LWG2191>`__Incorrect specification of ``match_results(match_results&&)``October 2021|Nothing To Do|
101`2381 <https://wg21.link/LWG2381>`__Inconsistency in parsing floating point numbersOctober 2021
102`2762 <https://wg21.link/LWG2762>`__``unique_ptr operator*()`` should be ``noexcept``October 2021
103`3121 <https://wg21.link/LWG3121>`__``tuple`` constructor constraints for ``UTypes&&...`` overloadsOctober 2021
104`3123 <https://wg21.link/LWG3123>`__``duration`` constructor from representation shouldn't be effectively non-throwingOctober 2021|chrono|
105`3146 <https://wg21.link/LWG3146>`__Excessive unwrapping in ``std::ref/cref``October 2021|Complete|14.0
106`3152 <https://wg21.link/LWG3152>`__``common_type`` and ``common_reference`` have flaws in commonOctober 2021
107`3293 <https://wg21.link/LWG3293>`__``move_iterator operator+()`` has incorrect constraintsOctober 2021|Complete|15.0|ranges|
108`3361 <https://wg21.link/LWG3361>`__``safe_range<SomeRange&>`` caseOctober 2021|Nothing To Do||ranges|
109`3392 <https://wg21.link/LWG3392>`__``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinelOctober 2021|Complete|14.0|ranges|
110`3407 <https://wg21.link/LWG3407>`__Some problems with the wording changes of P1739R4October 2021|Complete|15.0|ranges|
111`3422 <https://wg21.link/LWG3422>`__Issues of ``seed_seq``'s constructorsOctober 2021|Complete|14.0
112`3470 <https://wg21.link/LWG3470>`__``convertible-to-non-slicing`` seems to reject valid caseOctober 2021|Complete|14.0|ranges|
113`3480 <https://wg21.link/LWG3480>`__``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 rangesOctober 2021|Complete|14.0|ranges|
114`3498 <https://wg21.link/LWG3498>`__Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``October 2021
115`3535 <https://wg21.link/LWG3535>`__``join_view::iterator::iterator_category`` and ``::iterator_concept`` lieOctober 2021|Complete|15.0|ranges|
116`3554 <https://wg21.link/LWG3554>`__``chrono::parse`` needs ``const charT*`` and ``basic_string_view<charT>`` overloadsOctober 2021|chrono|
117`3557 <https://wg21.link/LWG3557>`__The ``static_cast`` expression in ``convertible_to`` has the wrong operandOctober 2021|Complete|14.0
118`3559 <https://wg21.link/LWG3559>`__Semantic requirements of ``sized_range`` is circularOctober 2021|Nothing To Do||ranges|
119`3560 <https://wg21.link/LWG3560>`__``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``October 2021|ranges|
120`3561 <https://wg21.link/LWG3561>`__Issue with internal counter in ``discard_block_engine``October 2021
121`3563 <https://wg21.link/LWG3563>`__``keys_view`` example is brokenOctober 2021|ranges|
122`3566 <https://wg21.link/LWG3566>`__Constraint recursion for ``operator<=>(optional<T>, U)``October 2021|spaceship|
123`3567 <https://wg21.link/LWG3567>`__Formatting move-only iterators take twoOctober 2021|format|
124`3568 <https://wg21.link/LWG3568>`__``basic_istream_view`` needs to initialize ``value_``October 2021|ranges|
125`3570 <https://wg21.link/LWG3570>`__``basic_osyncstream::emit`` should be an unformatted output functionOctober 2021
126`3571 <https://wg21.link/LWG3571>`__``flush_emit`` should set ``badbit`` if the ``emit`` call failsOctober 2021
127`3572 <https://wg21.link/LWG3572>`__``copyable-box`` should be fully ``constexpr``October 2021|Complete|14.0|ranges|
128`3573 <https://wg21.link/LWG3573>`__Missing Throws element for ``basic_string_view(It begin, End end)``October 2021|Complete|14.0
129`3574 <https://wg21.link/LWG3574>`__``common_iterator`` should be completely ``constexpr``-ableOctober 2021|Complete|14.0|ranges|
130`3580 <https://wg21.link/LWG3580>`__``iota_view``'s ``iterator``'s binary ``operator+`` should be improvedOctober 2021|Complete|14.0|ranges|
131`3581 <https://wg21.link/LWG3581>`__The range constructor makes ``basic_string_view`` not trivially move constructibleOctober 2021|Complete|14.0|ranges|
132`3585 <https://wg21.link/LWG3585>`__``variant`` converting assignment with immovable alternativeOctober 2021
133`3589 <https://wg21.link/LWG3589>`__The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``October 2021|Complete|14.0|ranges|
134`3590 <https://wg21.link/LWG3590>`__``split_view::base() const &`` is overconstrainedOctober 2021|ranges|
135`3591 <https://wg21.link/LWG3591>`__``lazy_split_view<input_view>::inner-iterator::base() &&`` invalidates outer iteratorsOctober 2021|ranges|
136`3592 <https://wg21.link/LWG3592>`__``lazy_split_view`` needs to check the simpleness of PatternOctober 2021|ranges|
137`3593 <https://wg21.link/LWG3593>`__Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``October 2021|ranges|
138`3595 <https://wg21.link/LWG3595>`__Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``October 2021|Complete|14.0|ranges|
139
140`3088 <https://wg21.link/LWG3088>`__``forward_list::merge`` behaviour unclear when passed ``*this``February 2022
141`3471 <https://wg21.link/LWG3471>`__``polymorphic_allocator::allocate`` does not satisfy ``Cpp17Allocator`` requirementsFebruary 2022
142`3525 <https://wg21.link/LWG3525>`__``uses_allocator_construction_args`` fails to handle types convertible to ``pair``February 2022
143`3598 <https://wg21.link/LWG3598>`__``system_category().default_error_condition(0)`` is underspecifiedFebruary 2022
144`3601 <https://wg21.link/LWG3601>`__common_iterator's postfix-proxy needs ``indirectly_readable`` February 2022|ranges|
145`3607 <https://wg21.link/LWG3607>`__``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behaviorFebruary 2022|Nothing to do||ranges|
146`3610 <https://wg21.link/LWG3610>`__``iota_view::size`` sometimes rejects integer-class typesFebruary 2022|ranges|
147`3612 <https://wg21.link/LWG3612>`__Inconsistent pointer alignment in ``std::format`` February 2022|Complete|14.0|format|
148`3616 <https://wg21.link/LWG3616>`__LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` February 2022
149`3618 <https://wg21.link/LWG3618>`__Unnecessary ``iter_move`` for ``transform_view::iterator`` February 2022|ranges|
150`3619 <https://wg21.link/LWG3619>`__Specification of ``vformat_to`` contains ill-formed ``formatted_size`` callsFebruary 2022|Nothing to do||format|
151`3621 <https://wg21.link/LWG3621>`__Remove feature-test macro ``__cpp_lib_monadic_optional`` February 2022|Complete|15.0
152`3632 <https://wg21.link/LWG3632>`__``unique_ptr`` "Mandates: This constructor is not selected by class template argument deduction"February 2022|Nothing to do|
153`3643 <https://wg21.link/LWG3643>`__Missing ``constexpr`` in ``std::counted_iterator`` February 2022
154`3648 <https://wg21.link/LWG3648>`__``format`` should not print ``bool`` with ``'c'`` February 2022|Complete|15.0|format|
155`3649 <https://wg21.link/LWG3649>`__[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macroFebruary 2022
156`3650 <https://wg21.link/LWG3650>`__Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?February 2022|Nothing to do|
157`3654 <https://wg21.link/LWG3654>`__``basic_format_context::arg(size_t)`` should be ``noexcept`` February 2022|Complete|15.0|format|
158`3657 <https://wg21.link/LWG3657>`__``std::hash<std::filesystem::path>`` is not enabledFebruary 2022
159`3660 <https://wg21.link/LWG3660>`__``iterator_traits<common_iterator>::pointer`` should conform to §[iterator.traits]February 2022|Complete|14.0
160`3661 <https://wg21.link/LWG3661>`__``constinit atomic<shared_ptr<T>> a(nullptr);`` should workFebruary 2022
161
162`3645 <https://wg21.link/LWG3645>`__``resize_and_overwrite`` is overspecified to call its callback with lvaluesNot voted in|Complete|14.0
163`3656 <https://wg21.link/LWG3656>`__Inconsistent bit operations returning a countNot voted in|Complete|15.0
164