mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-02 15:26:07 +00:00

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
22 KiB
22 KiB
1 | Issue # | Issue Name | Meeting | Status | First released version | Labels |
---|---|---|---|---|---|---|
2 | `3236 <https://wg21.link/LWG3236>`__ | Random access iterator requirements lack limiting relational operators domain to comparing those from the same range | November 2020 | |Nothing To Do| | |ranges| | |
3 | `3432 <https://wg21.link/LWG3432>`__ | Missing requirement for ``comparison_category`` | November 2020 | |spaceship| | ||
4 | `3450 <https://wg21.link/LWG3450>`__ | The const overloads of ``take_while_view::begin/end`` are underconstrained | November 2020 | |ranges| | ||
5 | `3306 <https://wg21.link/LWG3306>`__ | ``ranges::advance`` violates its preconditions | November 2020 | |Complete| | 14.0 | |ranges| |
6 | `3403 <https://wg21.link/LWG3403>`__ | Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)`` | November 2020 | |ranges| | ||
7 | `3404 <https://wg21.link/LWG3404>`__ | Finish removing subrange's conversions from pair-like | November 2020 | |ranges| | ||
8 | `3405 <https://wg21.link/LWG3405>`__ | ``common_view``'s converting constructor is bad, too | November 2020 | |Complete| | 14.0 | |ranges| |
9 | `3406 <https://wg21.link/LWG3406>`__ | ``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints | November 2020 | |ranges| | ||
10 | `3420 <https://wg21.link/LWG3420>`__ | cpp17-iterator should check that the type looks like an iterator first | November 2020 | |Complete| | 14.0 | |ranges| |
11 | `3421 <https://wg21.link/LWG3421>`__ | Imperfect ADL emulation for boolean-testable | November 2020 | |Nothing To Do| | |ranges| | |
12 | `3426 <https://wg21.link/LWG3426>`__ | ``operator<=>(const unique_ptr<T, D>&, nullptr_t)`` can't get no satisfaction | November 2020 | |spaceship| | ||
13 | `3427 <https://wg21.link/LWG3427>`__ | ``operator<=>(const shared_ptr<T>&, nullptr_t)`` definition ill-formed | November 2020 | |spaceship| | ||
14 | `3428 <https://wg21.link/LWG3428>`__ | ``single_view``'s in place constructor should be explicit | November 2020 | |Complete| | 14.0 | |ranges| |
15 | `3446 <https://wg21.link/LWG3446>`__ | ``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type`` | November 2020 | |Complete| | 14.0 | |ranges| |
16 | `3448 <https://wg21.link/LWG3448>`__ | ``transform_view``'s ``sentinel<false>`` not comparable with ``iterator<true>`` | November 2020 | |ranges| | ||
17 | `3449 <https://wg21.link/LWG3449>`__ | ``take_view`` and ``take_while_view``'s ``sentinel<false>`` not comparable with their ``const iterator`` | November 2020 | |ranges| | ||
18 | `3453 <https://wg21.link/LWG3453>`__ | Generic code cannot call ``ranges::advance(i, s)`` | November 2020 | |Nothing To Do| | |ranges| | |
19 | `3465 <https://wg21.link/LWG3465>`__ | ``compare_partial_order_fallback`` requires ``F < E`` | November 2020 | |Complete| | 14.0 | |spaceship| |
20 | `3472 <https://wg21.link/LWG3472>`__ | ``counted_iterator`` is missing preconditions | November 2020 | |Complete| | 14.0 | |ranges| |
21 | `3473 <https://wg21.link/LWG3473>`__ | Normative encouragement in non-normative note | November 2020 | |Complete| | 15.0 | |format| |
22 | `3474 <https://wg21.link/LWG3474>`__ | Nesting ``join_views`` is broken because of CTAD | November 2020 | |Complete| | 15.0 | |ranges| |
23 | `3477 <https://wg21.link/LWG3477>`__ | Simplify constraints for ``semiregular-box`` | November 2020 | |ranges| | ||
24 | `3482 <https://wg21.link/LWG3482>`__ | ``drop_view``'s const begin should additionally require ``sized_range`` | November 2020 | |Complete| | 14.0 | |ranges| |
25 | `3483 <https://wg21.link/LWG3483>`__ | ``transform_view::iterator``'s difference is overconstrained | November 2020 | |Complete| | 14.0 | |ranges| |
26 | `3391 <https://wg21.link/LWG3391>`__ | Problems with ``counted_iterator``/``move_iterator::base() const &`` | February 2021 | |ranges| | ||
27 | `3433 <https://wg21.link/LWG3433>`__ | ``subrange::advance(n)`` has UB when ``n < 0`` | February 2021 | |Complete| | 14.0 | |ranges| |
28 | `3490 <https://wg21.link/LWG3490>`__ | ``ranges::drop_while_view::begin()`` is missing a precondition | February 2021 | |Nothing To Do| | |ranges| | |
29 | `3492 <https://wg21.link/LWG3492>`__ | Minimal improvements to ``elements_view::iterator`` | February 2021 | |ranges| | ||
30 | `3494 <https://wg21.link/LWG3494>`__ | Allow ranges to be conditionally borrowed | February 2021 | Superseded by `P2017R1 <https://wg21.link/P2017R1>`__ | |ranges| | |
31 | `3500 <https://wg21.link/LWG3500>`__ | ``join_view::iterator::operator->()`` is bogus | February 2021 | |Complete| | 14.0 | |ranges| |
32 | `3502 <https://wg21.link/LWG3502>`__ | ``elements_view`` should not be allowed to return dangling reference | February 2021 | |ranges| | ||
33 | `3505 <https://wg21.link/LWG3505>`__ | ``split_view::outer-iterator::operator++`` misspecified | February 2021 | |ranges| | ||
34 | `3410 <https://wg21.link/LWG3410>`__ | ``lexicographical_compare_three_way`` is overspecified | June 2021 | |spaceship| | ||
35 | `3462 <https://wg21.link/LWG3462>`__ | §[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()`` | June 2021 | |format| | ||
36 | `3481 <https://wg21.link/LWG3481>`__ | ``viewable_range`` mishandles lvalue move-only views | June 2021 | Superseded by `P2415R2 <https://wg21.link/P2415R2>`__ | |ranges| | |
37 | `3517 <https://wg21.link/LWG3517>`__ | ``join_view::iterator``'s ``iter_swap`` is underconstrained | June 2021 | |Complete| | 14.0 | |ranges| |
38 | `3520 <https://wg21.link/LWG3520>`__ | ``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator`` | June 2021 | |Complete| | 14.0 | |ranges| |
39 | `3522 <https://wg21.link/LWG3522>`__ | Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors | June 2021 | |Complete| | 14.0 | |ranges| |
40 | `3523 <https://wg21.link/LWG3523>`__ | ``iota_view::sentinel`` is not always ``iota_view``'s sentinel | June 2021 | |ranges| | ||
41 | `3532 <https://wg21.link/LWG3532>`__ | ``split_view<V, P>::inner-iterator<true>::operator++(int)`` should depend on ``Base`` | June 2021 | |ranges| | ||
42 | `3533 <https://wg21.link/LWG3533>`__ | Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators`` | June 2021 | |Complete| | 14.0 | |ranges| |
43 | `3536 <https://wg21.link/LWG3536>`__ | Should ``chrono::from_stream()`` assign zero to duration for failure? | June 2021 | |chrono| | ||
44 | `3539 <https://wg21.link/LWG3539>`__ | ``format_to`` must not copy models of ``output_iterator<const charT&>`` | June 2021 | |format| | ||
45 | `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| |
46 | `3541 <https://wg21.link/LWG3541>`__ | ``indirectly_readable_traits`` should be SFINAE-friendly for all types | June 2021 | |Complete| | 14.0 | |ranges| |
47 | `3542 <https://wg21.link/LWG3542>`__ | ``basic_format_arg`` mishandles ``basic_string_view`` with custom traits | June 2021 | |Complete| | 14.0 | |format| |
48 | `3543 <https://wg21.link/LWG3543>`__ | Definition of when ``counted_iterators`` refer to the same sequence isn't quite right | June 2021 | |Nothing To Do| | |ranges| | |
49 | `3544 <https://wg21.link/LWG3544>`__ | ``format-arg-store::args`` is unintentionally not exposition-only | June 2021 | |Complete| | 14.0 | |format| |
50 | `3546 <https://wg21.link/LWG3546>`__ | ``common_iterator``'s postfix-proxy is not quite right | June 2021 | |ranges| | ||
51 | `3549 <https://wg21.link/LWG3549>`__ | ``view_interface`` is overspecified to derive from ``view_base`` | June 2021 | |Complete| | 14.0 | |ranges| |
52 | `3551 <https://wg21.link/LWG3551>`__ | ``borrowed_{iterator,subrange}_t`` are overspecified | June 2021 | |Nothing To Do| | |ranges| | |
53 | `3553 <https://wg21.link/LWG3553>`__ | Useless constraint in ``split_view::outer-iterator::value_type::begin()`` | June 2021 | |ranges| | ||
54 | `3555 <https://wg21.link/LWG3555>`__ | ``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range | June 2021 | |ranges| | ||
55 | `3123 <https://wg21.link/LWG3123>`__ | ``duration`` constructor from representation shouldn't be effectively non-throwing | October 2021 | |chrono| | ||
56 | `3293 <https://wg21.link/LWG3293>`__ | ``move_iterator operator+()`` has incorrect constraints | October 2021 | |Complete| | 15.0 | |ranges| |
57 | `3361 <https://wg21.link/LWG3361>`__ | ``safe_range<SomeRange&>`` case | October 2021 | |Nothing To Do| | |ranges| | |
58 | `3392 <https://wg21.link/LWG3392>`__ | ``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel | October 2021 | |Complete| | 14.0 | |ranges| |
59 | `3407 <https://wg21.link/LWG3407>`__ | Some problems with the wording changes of P1739R4 | October 2021 | |Complete| | 15.0 | |ranges| |
60 | `3470 <https://wg21.link/LWG3470>`__ | ``convertible-to-non-slicing`` seems to reject valid case | October 2021 | |Complete| | 14.0 | |ranges| |
61 | `3480 <https://wg21.link/LWG3480>`__ | ``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges | October 2021 | |Complete| | 14.0 | |ranges| |
62 | `3535 <https://wg21.link/LWG3535>`__ | ``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie | October 2021 | |Complete| | 15.0 | |ranges| |
63 | `3554 <https://wg21.link/LWG3554>`__ | ``chrono::parse`` needs ``const charT*`` and ``basic_string_view<charT>`` overloads | October 2021 | |chrono| | ||
64 | `3559 <https://wg21.link/LWG3559>`__ | Semantic requirements of ``sized_range`` is circular | October 2021 | |Nothing To Do| | |ranges| | |
65 | `3560 <https://wg21.link/LWG3560>`__ | ``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges`` | October 2021 | |ranges| | ||
66 | `3563 <https://wg21.link/LWG3563>`__ | ``keys_view`` example is broken | October 2021 | |ranges| | ||
67 | `3566 <https://wg21.link/LWG3566>`__ | Constraint recursion for ``operator<=>(optional<T>, U)`` | October 2021 | |spaceship| | ||
68 | `3567 <https://wg21.link/LWG3567>`__ | Formatting move-only iterators take two | October 2021 | |format| | ||
69 | `3568 <https://wg21.link/LWG3568>`__ | ``basic_istream_view`` needs to initialize ``value_`` | October 2021 | |ranges| | ||
70 | `3572 <https://wg21.link/LWG3572>`__ | ``copyable-box`` should be fully ``constexpr`` | October 2021 | |Complete| | 14.0 | |ranges| |
71 | `3574 <https://wg21.link/LWG3574>`__ | ``common_iterator`` should be completely ``constexpr``-able | October 2021 | |Complete| | 14.0 | |ranges| |
72 | `3580 <https://wg21.link/LWG3580>`__ | ``iota_view``'s ``iterator``'s binary ``operator+`` should be improved | October 2021 | |Complete| | 14.0 | |ranges| |
73 | `3581 <https://wg21.link/LWG3581>`__ | The range constructor makes ``basic_string_view`` not trivially move constructible | October 2021 | |Complete| | 14.0 | |ranges| |
74 | `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| |
75 | `3590 <https://wg21.link/LWG3590>`__ | ``split_view::base() const &`` is overconstrained | October 2021 | |ranges| | ||
76 | `3591 <https://wg21.link/LWG3591>`__ | ``lazy_split_view<input_view>::inner-iterator::base() &&`` invalidates outer iterators | October 2021 | |ranges| | ||
77 | `3592 <https://wg21.link/LWG3592>`__ | ``lazy_split_view`` needs to check the simpleness of Pattern | October 2021 | |ranges| | ||
78 | `3593 <https://wg21.link/LWG3593>`__ | Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept`` | October 2021 | |ranges| | ||
79 | `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| |
80 | `3601 <https://wg21.link/LWG3601>`__ | common_iterator's postfix-proxy needs ``indirectly_readable`` | February 2022 | |ranges| | ||
81 | `3607 <https://wg21.link/LWG3607>`__ | ``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behavior | February 2022 | |Nothing to do| | |ranges| | |
82 | `3610 <https://wg21.link/LWG3610>`__ | ``iota_view::size`` sometimes rejects integer-class types | February 2022 | |ranges| | ||
83 | `3612 <https://wg21.link/LWG3612>`__ | Inconsistent pointer alignment in ``std::format`` | February 2022 | |Complete| | 14.0 | |format| |
84 | `3618 <https://wg21.link/LWG3618>`__ | Unnecessary ``iter_move`` for ``transform_view::iterator`` | February 2022 | |ranges| | ||
85 | `3619 <https://wg21.link/LWG3619>`__ | Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls | February 2022 | |Nothing to do| | |format| | |
86 | `3648 <https://wg21.link/LWG3648>`__ | ``format`` should not print ``bool`` with ``'c'`` | February 2022 | |Complete| | 15.0 | |format| |
87 | `3654 <https://wg21.link/LWG3654>`__ | ``basic_format_context::arg(size_t)`` should be ``noexcept`` | February 2022 | |Complete| | 15.0 | |format| |
88 | `3645 <https://wg21.link/LWG3645>`__ | ``resize_and_overwrite`` is overspecified to call its callback with lvalues | Not voted in | |Complete| | 14.0 | |
89 | `3656 <https://wg21.link/LWG3656>`__ | Inconsistent bit operations returning a count | Not voted in | |Complete| | 15.0 |