mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 12:16:06 +00:00

This change addresses LWG 3821 and LWG 3677. - make `std::pair`'s constructor no longer takes `subrange` - `uses_allocator_construction_args` constraint changes w.r.t to `pair-like` types - `uses_allocator_construction_args` constraints checks `is-pair-like<remove_cv_t<T>>`
42 KiB
42 KiB
1 | Issue # | Issue Name | Meeting | Status | First released version | Labels |
---|---|---|---|---|---|---|
2 | `3432 <https://wg21.link/LWG3432>`__ | Missing requirement for ``comparison_category`` | November 2020 | |Complete| | 16.0 | |spaceship| |
3 | `3447 <https://wg21.link/LWG3447>`__ | Deduction guides for ``take_view`` and ``drop_view`` have different constraints | November 2020 | |Complete| | 14.0 | |ranges| |
4 | `3450 <https://wg21.link/LWG3450>`__ | The const overloads of ``take_while_view::begin/end`` are underconstrained | November 2020 | |Complete| | 16.0 | |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 | |Complete| | 16.0 | |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 | |Complete| | 16.0 | |spaceship| |
13 | `3427 <https://wg21.link/LWG3427>`__ | ``operator<=>(const shared_ptr<T>&, nullptr_t)`` definition ill-formed | November 2020 | |Complete| | 16.0 | |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 | |Complete| | 16.0 | |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 | `3467 <https://wg21.link/LWG3467>`__ | ``bool`` can't be an integer-like type | November 2020 | |Complete| | 14.0 | |ranges| |
21 | `3472 <https://wg21.link/LWG3472>`__ | ``counted_iterator`` is missing preconditions | November 2020 | |Complete| | 14.0 | |ranges| |
22 | `3473 <https://wg21.link/LWG3473>`__ | Normative encouragement in non-normative note | November 2020 | |Complete| | 15.0 | |format| |
23 | `3474 <https://wg21.link/LWG3474>`__ | Nesting ``join_views`` is broken because of CTAD | November 2020 | |Complete| | 15.0 | |ranges| |
24 | `3477 <https://wg21.link/LWG3477>`__ | Simplify constraints for ``semiregular-box`` | November 2020 | |ranges| | ||
25 | `3482 <https://wg21.link/LWG3482>`__ | ``drop_view``'s const begin should additionally require ``sized_range`` | November 2020 | |Complete| | 14.0 | |ranges| |
26 | `3483 <https://wg21.link/LWG3483>`__ | ``transform_view::iterator``'s difference is overconstrained | November 2020 | |Complete| | 14.0 | |ranges| |
27 | ||||||
28 | `3391 <https://wg21.link/LWG3391>`__ | Problems with ``counted_iterator``/``move_iterator::base() const &`` | February 2021 | |ranges| | ||
29 | `3433 <https://wg21.link/LWG3433>`__ | ``subrange::advance(n)`` has UB when ``n < 0`` | February 2021 | |Complete| | 14.0 | |ranges| |
30 | `3490 <https://wg21.link/LWG3490>`__ | ``ranges::drop_while_view::begin()`` is missing a precondition | February 2021 | |Nothing To Do| | |ranges| | |
31 | `3492 <https://wg21.link/LWG3492>`__ | Minimal improvements to ``elements_view::iterator`` | February 2021 | |Complete| | 16.0 | |ranges| |
32 | `3494 <https://wg21.link/LWG3494>`__ | Allow ranges to be conditionally borrowed | February 2021 | Superseded by `P2017R1 <https://wg21.link/P2017R1>`__ | |ranges| | |
33 | `3500 <https://wg21.link/LWG3500>`__ | ``join_view::iterator::operator->()`` is bogus | February 2021 | |Complete| | 14.0 | |ranges| |
34 | `3502 <https://wg21.link/LWG3502>`__ | ``elements_view`` should not be allowed to return dangling reference | February 2021 | |Complete| | 16.0 | |ranges| |
35 | `3505 <https://wg21.link/LWG3505>`__ | ``split_view::outer-iterator::operator++`` misspecified | February 2021 | |ranges| | ||
36 | ||||||
37 | `3410 <https://wg21.link/LWG3410>`__ | ``lexicographical_compare_three_way`` is overspecified | June 2021 | |Complete| | 17.0 | |spaceship| |
38 | `3462 <https://wg21.link/LWG3462>`__ | §[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()`` | June 2021 | |format| | ||
39 | `3481 <https://wg21.link/LWG3481>`__ | ``viewable_range`` mishandles lvalue move-only views | June 2021 | Superseded by `P2415R2 <https://wg21.link/P2415R2>`__ | |ranges| | |
40 | `3517 <https://wg21.link/LWG3517>`__ | ``join_view::iterator``'s ``iter_swap`` is underconstrained | June 2021 | |Complete| | 14.0 | |ranges| |
41 | `3520 <https://wg21.link/LWG3520>`__ | ``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator`` | June 2021 | |Complete| | 14.0 | |ranges| |
42 | `3523 <https://wg21.link/LWG3523>`__ | ``iota_view::sentinel`` is not always ``iota_view``'s sentinel | June 2021 | |ranges| | ||
43 | `3532 <https://wg21.link/LWG3532>`__ | ``split_view<V, P>::inner-iterator<true>::operator++(int)`` should depend on ``Base`` | June 2021 | |ranges| | ||
44 | `3533 <https://wg21.link/LWG3533>`__ | Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators`` | June 2021 | |Complete| | 14.0 | |ranges| |
45 | `3536 <https://wg21.link/LWG3536>`__ | Should ``chrono::from_stream()`` assign zero to duration for failure? | June 2021 | |chrono| | ||
46 | `3539 <https://wg21.link/LWG3539>`__ | ``format_to`` must not copy models of ``output_iterator<const charT&>`` | June 2021 | |Complete| | 14.0 | |format| |
47 | `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| |
48 | `3541 <https://wg21.link/LWG3541>`__ | ``indirectly_readable_traits`` should be SFINAE-friendly for all types | June 2021 | |Complete| | 14.0 | |ranges| |
49 | `3542 <https://wg21.link/LWG3542>`__ | ``basic_format_arg`` mishandles ``basic_string_view`` with custom traits | June 2021 | |Complete| | 14.0 | |format| |
50 | `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| | |
51 | `3544 <https://wg21.link/LWG3544>`__ | ``format-arg-store::args`` is unintentionally not exposition-only | June 2021 | |Complete| | 14.0 | |format| |
52 | `3546 <https://wg21.link/LWG3546>`__ | ``common_iterator``'s postfix-proxy is not quite right | June 2021 | |ranges| | ||
53 | `3549 <https://wg21.link/LWG3549>`__ | ``view_interface`` is overspecified to derive from ``view_base`` | June 2021 | |Complete| | 14.0 | |ranges| |
54 | `3551 <https://wg21.link/LWG3551>`__ | ``borrowed_{iterator,subrange}_t`` are overspecified | June 2021 | |Nothing To Do| | |ranges| | |
55 | `3553 <https://wg21.link/LWG3553>`__ | Useless constraint in ``split_view::outer-iterator::value_type::begin()`` | June 2021 | |ranges| | ||
56 | `3555 <https://wg21.link/LWG3555>`__ | ``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range | June 2021 | |ranges| | ||
57 | ||||||
58 | `3123 <https://wg21.link/LWG3123>`__ | ``duration`` constructor from representation shouldn't be effectively non-throwing | October 2021 | |chrono| | ||
59 | `3361 <https://wg21.link/LWG3361>`__ | ``safe_range<SomeRange&>`` case | October 2021 | |Nothing To Do| | |ranges| | |
60 | `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| |
61 | `3407 <https://wg21.link/LWG3407>`__ | Some problems with the wording changes of P1739R4 | October 2021 | |Complete| | 15.0 | |ranges| |
62 | `3470 <https://wg21.link/LWG3470>`__ | ``convertible-to-non-slicing`` seems to reject valid case | October 2021 | |Complete| | 14.0 | |ranges| |
63 | `3480 <https://wg21.link/LWG3480>`__ | ``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges | October 2021 | |Complete| | 14.0 | |ranges| |
64 | `3535 <https://wg21.link/LWG3535>`__ | ``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie | October 2021 | |Complete| | 15.0 | |ranges| |
65 | `3554 <https://wg21.link/LWG3554>`__ | ``chrono::parse`` needs ``const charT*`` and ``basic_string_view<charT>`` overloads | October 2021 | |chrono| | ||
66 | `3559 <https://wg21.link/LWG3559>`__ | Semantic requirements of ``sized_range`` is circular | October 2021 | |Nothing To Do| | |ranges| | |
67 | `3560 <https://wg21.link/LWG3560>`__ | ``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges`` | October 2021 | |ranges| | ||
68 | `3563 <https://wg21.link/LWG3563>`__ | ``keys_view`` example is broken | October 2021 | |ranges| | ||
69 | `3566 <https://wg21.link/LWG3566>`__ | Constraint recursion for ``operator<=>(optional<T>, U)`` | October 2021 | |Complete| | 17.0 | |spaceship| |
70 | `3567 <https://wg21.link/LWG3567>`__ | Formatting move-only iterators take two | October 2021 | |Complete| | 16.0 | |format| |ranges| |
71 | `3568 <https://wg21.link/LWG3568>`__ | ``basic_istream_view`` needs to initialize ``value_`` | October 2021 | |Complete| | 16.0 | |ranges| |
72 | `3572 <https://wg21.link/LWG3572>`__ | ``copyable-box`` should be fully ``constexpr`` | October 2021 | |Complete| | 14.0 | |ranges| |
73 | `3574 <https://wg21.link/LWG3574>`__ | ``common_iterator`` should be completely ``constexpr``-able | October 2021 | |Complete| | 14.0 | |ranges| |
74 | `3580 <https://wg21.link/LWG3580>`__ | ``iota_view``'s ``iterator``'s binary ``operator+`` should be improved | October 2021 | |Complete| | 14.0 | |ranges| |
75 | `3581 <https://wg21.link/LWG3581>`__ | The range constructor makes ``basic_string_view`` not trivially move constructible | October 2021 | |Complete| | 14.0 | |ranges| |
76 | `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| |
77 | `3590 <https://wg21.link/LWG3590>`__ | ``split_view::base() const &`` is overconstrained | October 2021 | |Complete| | 16.0 | |ranges| |
78 | `3591 <https://wg21.link/LWG3591>`__ | ``lazy_split_view<input_view>::inner-iterator::base() &&`` invalidates outer iterators | October 2021 | |ranges| | ||
79 | `3592 <https://wg21.link/LWG3592>`__ | ``lazy_split_view`` needs to check the simpleness of Pattern | October 2021 | |ranges| | ||
80 | `3593 <https://wg21.link/LWG3593>`__ | Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept`` | October 2021 | |ranges| | ||
81 | `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| |
82 | ||||||
83 | `3601 <https://wg21.link/LWG3601>`__ | common_iterator's postfix-proxy needs ``indirectly_readable`` | February 2022 | |ranges| | ||
84 | `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| | |
85 | `3610 <https://wg21.link/LWG3610>`__ | ``iota_view::size`` sometimes rejects integer-class types | February 2022 | |ranges| | ||
86 | `3612 <https://wg21.link/LWG3612>`__ | Inconsistent pointer alignment in ``std::format`` | February 2022 | |Complete| | 14.0 | |format| |
87 | `3618 <https://wg21.link/LWG3618>`__ | Unnecessary ``iter_move`` for ``transform_view::iterator`` | February 2022 | |ranges| | ||
88 | `3619 <https://wg21.link/LWG3619>`__ | Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls | February 2022 | |Nothing to do| | |format| | |
89 | `3643 <https://wg21.link/LWG3643>`__ | Missing ``constexpr`` in ``std::counted_iterator`` | February 2022 | |ranges| | ||
90 | `3648 <https://wg21.link/LWG3648>`__ | ``format`` should not print ``bool`` with ``'c'`` | February 2022 | |Complete| | 15.0 | |format| |
91 | `3654 <https://wg21.link/LWG3654>`__ | ``basic_format_context::arg(size_t)`` should be ``noexcept`` | February 2022 | |Complete| | 15.0 | |format| |
92 | `3660 <https://wg21.link/LWG3660>`__ | ``iterator_traits<common_iterator>::pointer`` should conform to §[iterator.traits] | February 2022 | |Complete| | 14.0 | |ranges| |
93 | ||||||
94 | `3564 <https://wg21.link/LWG3564>`__ | ``transform_view::iterator<true>::value_type`` and ``iterator_category`` should use ``const F&`` | July 2022 | |ranges| | ||
95 | `3656 <https://wg21.link/LWG3656>`__ | Inconsistent bit operations returning a count | July 2022 | |Complete| | 15.0 | |
96 | `3670 <https://wg21.link/LWG3670>`__ | ``Cpp17InputIterators`` don't have integer-class difference types | July 2022 | |ranges| | ||
97 | `3672 <https://wg21.link/LWG3672>`__ | ``common_iterator::operator->()`` should return by value | July 2022 | |ranges| | ||
98 | `3692 <https://wg21.link/LWG3692>`__ | ``zip_view::iterator``'s ``operator<=>`` is overconstrained | July 2022 | |ranges| |spaceship| | ||
99 | `3701 <https://wg21.link/LWG3701>`__ | Make ``formatter<remove_cvref_t<const charT[N]>, charT>`` requirement explicit | July 2022 | |format| | ||
100 | `3702 <https://wg21.link/LWG3702>`__ | Should ``zip_transform_view::iterator`` remove ``operator<`` | July 2022 | |ranges| |spaceship| | ||
101 | `3707 <https://wg21.link/LWG3707>`__ | chunk_view::outer-iterator::value_type::size should return unsigned type | July 2022 | |ranges| | ||
102 | `3708 <https://wg21.link/LWG3708>`__ | ``take_while_view::sentinel``'s conversion constructor should move | July 2022 | |Complete| | 16.0 | |ranges| |
103 | `3710 <https://wg21.link/LWG3710>`__ | The ``end`` of ``chunk_view`` for input ranges can be ``const`` | July 2022 | |ranges| | ||
104 | `3711 <https://wg21.link/LWG3711>`__ | Missing preconditions for slide_view constructor | July 2022 | |ranges| | ||
105 | `3712 <https://wg21.link/LWG3712>`__ | ``chunk_view`` and ``slide_view`` should not be ``default_initializable`` | July 2022 | |ranges| | ||
106 | `3715 <https://wg21.link/LWG3715>`__ | ``view_interface::empty`` is overconstrained | July 2022 | |ranges| | ||
107 | `3719 <https://wg21.link/LWG3719>`__ | Directory iterators should be usable with default sentinel | July 2022 | |Complete| | 17.0 | |ranges| |
108 | `3721 <https://wg21.link/LWG3721>`__ | Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec`` | July 2022 | |Complete| | 16.0 | |format| |
109 | ||||||
110 | `3028 <https://wg21.link/LWG3028>`__ | Container requirements tables should distinguish ``const`` and non-``const`` variables | November 2022 | |||
111 | `3118 <https://wg21.link/LWG3118>`__ | ``fpos`` equality comparison unspecified | November 2022 | |||
112 | `3177 <https://wg21.link/LWG3177>`__ | Limit permission to specialize variable templates to program-defined types | November 2022 | |Nothing to do| | ||
113 | `3515 <https://wg21.link/LWG3515>`__ | §[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized | November 2022 | |||
114 | `3545 <https://wg21.link/LWG3545>`__ | ``std::pointer_traits`` should be SFINAE-friendly | November 2022 | |Complete| | 18.0 | |
115 | `3569 <https://wg21.link/LWG3569>`__ | ``join_view`` fails to support ranges of ranges with non-default_initializable iterators | November 2022 | |ranges| | ||
116 | `3594 <https://wg21.link/LWG3594>`__ | ``inout_ptr`` — inconsistent ``release()`` in destructor | November 2022 | |||
117 | `3597 <https://wg21.link/LWG3597>`__ | Unsigned integer types don't model advanceable | November 2022 | |ranges| | ||
118 | `3600 <https://wg21.link/LWG3600>`__ | Making ``istream_iterator`` copy constructor trivial is an ABI break | November 2022 | |||
119 | `3629 <https://wg21.link/LWG3629>`__ | ``make_error_code`` and ``make_error_condition`` are customization points | November 2022 | |Complete| | 16.0 | |
120 | `3636 <https://wg21.link/LWG3636>`__ | ``formatter<T>::format`` should be ``const``-qualified | November 2022 | |Complete| | 16.0 | |format| |
121 | `3646 <https://wg21.link/LWG3646>`__ | ``std::ranges::view_interface::size`` returns a signed type | November 2022 | |Complete| | 16.0 | |ranges| |
122 | `3677 <https://wg21.link/LWG3677>`__ | Is a cv-qualified ``pair`` specially handled in uses-allocator construction? | November 2022 | |Complete| | 18.0 | |
123 | `3717 <https://wg21.link/LWG3717>`__ | ``common_view::end`` should improve ``random_access_range`` case | November 2022 | |ranges| | ||
124 | `3732 <https://wg21.link/LWG3732>`__ | ``prepend_range`` and ``append_range`` can't be amortized constant time | November 2022 | |Nothing to do| | |ranges| | |
125 | `3736 <https://wg21.link/LWG3736>`__ | ``move_iterator`` missing ``disable_sized_sentinel_for`` specialization | November 2022 | |ranges| | ||
126 | `3737 <https://wg21.link/LWG3737>`__ | ``take_view::sentinel`` should provide ``operator-`` | November 2022 | |ranges| | ||
127 | `3738 <https://wg21.link/LWG3738>`__ | Missing preconditions for ``take_view`` constructor | November 2022 | |Complete| | 16.0 | |ranges| |
128 | `3743 <https://wg21.link/LWG3743>`__ | ``ranges::to``'s reserve may be ill-formed | November 2022 | |ranges| | ||
129 | `3745 <https://wg21.link/LWG3745>`__ | ``std::atomic_wait`` and its friends lack ``noexcept`` | November 2022 | |Complete| | 16.0 | |
130 | `3746 <https://wg21.link/LWG3746>`__ | ``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion | November 2022 | |Complete| | 17.0 | |spaceship| |
131 | `3747 <https://wg21.link/LWG3747>`__ | ``ranges::uninitialized_copy_n``, ``ranges::uninitialized_move_n``, and ``ranges::destroy_n`` should use ``std::move`` | November 2022 | |ranges| | ||
132 | `3750 <https://wg21.link/LWG3750>`__ | Too many papers bump ``__cpp_lib_format`` | November 2022 | |Partial| [#note-LWG3750]_ | |format| | |
133 | `3751 <https://wg21.link/LWG3751>`__ | Missing feature macro for ``flat_set`` | November 2022 | |flat_containers| | ||
134 | `3753 <https://wg21.link/LWG3753>`__ | Clarify entity vs. freestanding entity | November 2022 | |||
135 | `3754 <https://wg21.link/LWG3754>`__ | Class template expected synopsis contains declarations that do not match the detailed description | November 2022 | |Nothing to do| | ||
136 | `3755 <https://wg21.link/LWG3755>`__ | ``tuple-for-each`` can call ``user-defined`` ``operator,`` | November 2022 | |Complete| | 17.0 | |
137 | `3757 <https://wg21.link/LWG3757>`__ | What's the effect of ``std::forward_like<void>(x)``? | November 2022 | |||
138 | `3759 <https://wg21.link/LWG3759>`__ | ``ranges::rotate_copy`` should use ``std::move`` | November 2022 | |Complete| | 15.0 | |ranges| |
139 | `3760 <https://wg21.link/LWG3760>`__ | ``cartesian_product_view::iterator``'s ``parent_`` is never valid | November 2022 | |ranges| | ||
140 | `3761 <https://wg21.link/LWG3761>`__ | ``cartesian_product_view::iterator::operator-`` should pass by reference | November 2022 | |ranges| | ||
141 | `3762 <https://wg21.link/LWG3762>`__ | ``generator::iterator::operator==`` should pass by reference | November 2022 | |||
142 | `3764 <https://wg21.link/LWG3764>`__ | ``reference_wrapper::operator()`` should propagate noexcept | November 2022 | |Complete| | 17.0 | |
143 | `3765 <https://wg21.link/LWG3765>`__ | ``const_sentinel`` should be constrained | November 2022 | |ranges| | ||
144 | `3766 <https://wg21.link/LWG3766>`__ | ``view_interface::cbegin`` is underconstrained | November 2022 | |ranges| | ||
145 | `3770 <https://wg21.link/LWG3770>`__ | ``const_sentinel_t`` is missing | November 2022 | |ranges| | ||
146 | `3773 <https://wg21.link/LWG3773>`__ | ``views::zip_transform`` still requires ``F`` to be ``copy_constructible`` when empty pack | November 2022 | |ranges| | ||
147 | `3774 <https://wg21.link/LWG3774>`__ | ``<flat_set>`` should include ``<compare>`` | November 2022 | |flat_containers| | ||
148 | `3775 <https://wg21.link/LWG3775>`__ | Broken dependencies in the ``Cpp17Allocator`` requirements | November 2022 | |||
149 | `3778 <https://wg21.link/LWG3778>`__ | ``vector<bool>`` missing exception specifications | November 2022 | |||
150 | `3781 <https://wg21.link/LWG3781>`__ | The exposition-only alias templates ``cont-key-type`` and ``cont-mapped-type`` should be removed | November 2022 | |Nothing to do| | ||
151 | `3782 <https://wg21.link/LWG3782>`__ | Should ``<math.h>`` declare ``::lerp``? | November 2022 | |Complete| | 17.0 | |
152 | `3784 <https://wg21.link/LWG3784>`__ | std.compat should not provide ``::byte`` and its friends | November 2022 | |||
153 | `3785 <https://wg21.link/LWG3785>`__ | ``ranges::to`` is over-constrained on the destination type being a range | November 2022 | |ranges| | ||
154 | `3788 <https://wg21.link/LWG3788>`__ | ``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment | November 2022 | |||
155 | `3792 <https://wg21.link/LWG3792>`__ | ``__cpp_lib_constexpr_algorithms`` should also be defined in ``<utility>`` | November 2022 | |Complete| | 16.0 | |
156 | `3795 <https://wg21.link/LWG3795>`__ | Self-move-assignment of ``std::future`` and ``std::shared_future`` have unimplementable postconditions | November 2022 | |||
157 | `3796 <https://wg21.link/LWG3796>`__ | ``movable-box`` as member should use ``default-initialization`` instead of ``copy-initialization`` | November 2022 | |ranges| | ||
158 | `3798 <https://wg21.link/LWG3798>`__ | Rvalue reference and ``iterator_category`` | November 2022 | |Partial| [#note-LWG3798]_ | |ranges| | |
159 | `3801 <https://wg21.link/LWG3801>`__ | ``cartesian_product_view::iterator::distance-from`` ignores the size of last underlying range | November 2022 | |ranges| | ||
160 | `3814 <https://wg21.link/LWG3814>`__ | Add freestanding items requested by NB comments | November 2022 | |||
161 | `3816 <https://wg21.link/LWG3816>`__ | ``flat_map`` and ``flat_multimap`` should impose sequence container requirements | November 2022 | |flat_containers| | ||
162 | `3817 <https://wg21.link/LWG3817>`__ | Missing preconditions on ``forward_list`` modifiers | November 2022 | |||
163 | `3818 <https://wg21.link/LWG3818>`__ | Exposition-only concepts are not described in library intro | November 2022 | |Nothing to do| | ||
164 | `3822 <https://wg21.link/LWG3822>`__ | Avoiding normalization in ``filesystem::weakly_canonical`` | November 2022 | |||
165 | `3823 <https://wg21.link/LWG3823>`__ | Unnecessary precondition for ``is_aggregate`` | November 2022 | |||
166 | `3824 <https://wg21.link/LWG3824>`__ | Number of ``bind`` placeholders is underspecified | November 2022 | |Nothing to do| | ||
167 | `3826 <https://wg21.link/LWG3826>`__ | Redundant specification [for overload of yield_value] | November 2022 | |||
168 | ||||||
169 | `2195 <https://wg21.link/LWG2195>`__ | Missing constructors for ``match_results`` | February 2023 | |||
170 | `2295 <https://wg21.link/LWG2295>`__ | Locale name when the provided ``Facet`` is a ``nullptr`` | February 2023 | |||
171 | `3032 <https://wg21.link/LWG3032>`__ | ``ValueSwappable`` requirement missing for ``push_heap`` and ``make_heap`` | February 2023 | |||
172 | `3085 <https://wg21.link/LWG3085>`__ | ``char_traits::copy`` precondition too weak | February 2023 | |||
173 | `3664 <https://wg21.link/LWG3664>`__ | `LWG 3392 <https://wg21.link/LWG3392>`__ ``broke std::ranges::distance(a, a+3)`` | February 2023 | |ranges| | ||
174 | `3720 <https://wg21.link/LWG3720>`__ | Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec`` | February 2023 | |Complete| | 17.0 | |format| |
175 | `3756 <https://wg21.link/LWG3756>`__ | Is the ``std::atomic_flag`` class signal-safe? | February 2023 | |||
176 | `3769 <https://wg21.link/LWG3769>`__ | ``basic_const_iterator::operator==`` causes infinite constraint recursion | February 2023 | |spaceship| | ||
177 | `3807 <https://wg21.link/LWG3807>`__ | The feature test macro for ``ranges::find_last`` should be renamed | February 2023 | |ranges| | ||
178 | `3811 <https://wg21.link/LWG3811>`__ | ``views::as_const`` on ``ref_view<T>`` should return ``ref_view<const T>`` | February 2023 | |ranges| | ||
179 | `3820 <https://wg21.link/LWG3820>`__ | ``cartesian_product_view::iterator::prev`` is not quite right | February 2023 | |ranges| | ||
180 | `3825 <https://wg21.link/LWG3825>`__ | Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id`` | February 2023 | |Complete| | 17.0 | |format| |
181 | `3204 <https://wg21.link/LWG3204>`__ | ``sub_match::swap`` only swaps the base class | February 2023 | |Complete| | 17.0 | |
182 | `3733 <https://wg21.link/LWG3733>`__ | ``ranges::to`` misuses ``cpp17-input-iterator`` | February 2023 | |Complete| | 17.0 | |ranges| |
183 | `3742 <https://wg21.link/LWG3742>`__ | ``deque::prepend_range`` needs to permute | February 2023 | |ranges| | ||
184 | `3790 <https://wg21.link/LWG3790>`__ | `P1467 <https://wg21.link/P1467>`__ accidentally changed ``nexttoward``'s signature | February 2023 | |||
185 | `3819 <https://wg21.link/LWG3819>`__ | ``reference_meows_from_temporary`` should not use ``is_meowible`` | February 2023 | |||
186 | `3821 <https://wg21.link/LWG3821>`__ | ``uses_allocator_construction_args`` should have overload for ``pair-like`` | February 2023 | |Complete| | 18.0.0 | |
187 | `3834 <https://wg21.link/LWG3834>`__ | Missing ``constexpr`` for ``std::intmax_t`` math functions in ``<cinttypes>`` | February 2023 | |||
188 | `3839 <https://wg21.link/LWG3839>`__ | ``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept`` | February 2023 | |Complete| | 17.0 | |format| |
189 | `3841 <https://wg21.link/LWG3841>`__ | ``<version>`` should not be "all freestanding" | February 2023 | |||
190 | `3842 <https://wg21.link/LWG3842>`__ | Unclear wording for ``precision`` in ``chrono-format-spec`` | February 2023 | |Complete| | 16.0 | |format| |
191 | `3848 <https://wg21.link/LWG3848>`__ | ``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor | February 2023 | |ranges| | ||
192 | `3849 <https://wg21.link/LWG3849>`__ | ``cartesian_product_view::iterator``'s default constructor is overconstrained | February 2023 | |ranges| | ||
193 | `3850 <https://wg21.link/LWG3850>`__ | ``views::as_const`` on ``empty_view<T>`` should return ``empty_view<const T>`` | February 2023 | |ranges| | ||
194 | `3851 <https://wg21.link/LWG3851>`__ | ``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap`` | February 2023 | |ranges| | ||
195 | `3853 <https://wg21.link/LWG3853>`__ | ``basic_const_iterator<volatile int*>::operator->`` is ill-formed | February 2023 | |||
196 | `3857 <https://wg21.link/LWG3857>`__ | ``basic_string_view`` should allow explicit conversion when only traits vary | February 2023 | |Complete| | 17.0 | |
197 | `3860 <https://wg21.link/LWG3860>`__ | ``range_common_reference_t`` is missing | February 2023 | |Complete| | 17.0 | |ranges| |
198 | `3866 <https://wg21.link/LWG3866>`__ | Bad Mandates for ``expected::transform_error`` overloads | February 2023 | |Complete| | 17.0 | |
199 | `3867 <https://wg21.link/LWG3867>`__ | Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``? | February 2023 | |||
200 | `3441 <https://wg21.link/LWG3441>`__ | Misleading note about calls to customization points | February 2023 | |||
201 | `3622 <https://wg21.link/LWG3622>`__ | Misspecified transitivity of equivalence in §[unord.req.general] | February 2023 | |||
202 | `3631 <https://wg21.link/LWG3631>`__ | ``basic_format_arg(T&&)`` should use ``remove_cvref_t<T>`` throughout | February 2023 | |Complete| | 17.0 | |
203 | `3645 <https://wg21.link/LWG3645>`__ | ``resize_and_overwrite`` is overspecified to call its callback with lvalues | February 2023 | |Complete| | 14.0 | |
204 | `3655 <https://wg21.link/LWG3655>`__ | The ``INVOKE`` operation and union types | February 2023 | |Complete| | 18.0 | |
205 | `3723 <https://wg21.link/LWG3723>`__ | ``priority_queue::push_range`` needs to ``append_range`` | February 2023 | |ranges| | ||
206 | `3734 <https://wg21.link/LWG3734>`__ | Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case | February 2023 | |||
207 | `3772 <https://wg21.link/LWG3772>`__ | ``repeat_view``'s ``piecewise`` constructor is missing Postconditions | February 2023 | |ranges| | ||
208 | `3786 <https://wg21.link/LWG3786>`__ | Flat maps' deduction guide needs to default ``Allocator`` to be useful | February 2023 | |||
209 | `3803 <https://wg21.link/LWG3803>`__ | ``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter | February 2023 | |||
210 | `3810 <https://wg21.link/LWG3810>`__ | CTAD for ``std::basic_format_args`` | February 2023 | |Complete| | 17.0 | |format| |
211 | `3827 <https://wg21.link/LWG3827>`__ | Deprecate ``<stdalign.h>`` and ``<stdbool.h>`` macros | February 2023 | |||
212 | `3828 <https://wg21.link/LWG3828>`__ | Sync ``intmax_t`` and ``uintmax_t`` with C2x | February 2023 | |||
213 | `3833 <https://wg21.link/LWG3833>`__ | Remove specialization ``template<size_t N> struct formatter<const charT[N], charT>`` | February 2023 | |Complete| | 17.0 | |format| |
214 | `3836 <https://wg21.link/LWG3836>`__ | ``std::expected<bool, E1>`` conversion constructor ``expected(const expected<U, G>&)`` should take precedence over ``expected(U&&)`` with operator ``bool`` | February 2023 | |Complete| | 18.0 | |
215 | `3843 <https://wg21.link/LWG3843>`__ | ``std::expected<T,E>::value() &`` assumes ``E`` is copy constructible | February 2023 | |Complete| | 17.0 | |
216 | `3847 <https://wg21.link/LWG3847>`__ | ``ranges::to`` can still return views | February 2023 | |Complete| | 17.0 | |ranges| |
217 | `3862 <https://wg21.link/LWG3862>`__ | ``basic_const_iterator``'s ``common_type`` specialization is underconstrained | February 2023 | |||
218 | `3865 <https://wg21.link/LWG3865>`__ | Sorting a range of ``pairs`` | February 2023 | |Complete| | 17.0 | |ranges| |
219 | `3869 <https://wg21.link/LWG3869>`__ | Deprecate ``std::errc`` constants related to UNIX STREAMS | February 2023 | |||
220 | `3870 <https://wg21.link/LWG3870>`__ | Remove ``voidify`` | February 2023 | |||
221 | `3871 <https://wg21.link/LWG3871>`__ | Adjust note about ``terminate`` | February 2023 | |||
222 | `3872 <https://wg21.link/LWG3872>`__ | ``basic_const_iterator`` should have custom ``iter_move`` | February 2023 | |||
223 | `3875 <https://wg21.link/LWG3875>`__ | ``std::ranges::repeat_view<T, IntegerClass>::iterator`` may be ill-formed | February 2023 | |Complete| | 17.0 | |ranges| |
224 | `3876 <https://wg21.link/LWG3876>`__ | Default constructor of ``std::layout_XX::mapping`` misses precondition | February 2023 | |||
225 | `3877 <https://wg21.link/LWG3877>`__ | Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected`` | February 2023 | |Complete| | 17.0 | |
226 | `3878 <https://wg21.link/LWG3878>`__ | import ``std;`` should guarantee initialization of standard iostreams objects | February 2023 | |||
227 | `3879 <https://wg21.link/LWG3879>`__ | ``erase_if`` for ``flat_{,multi}set`` is incorrectly specified | February 2023 | |||
228 | `3880 <https://wg21.link/LWG3880>`__ | Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator`` | February 2023 | |ranges| | ||
229 | `3881 <https://wg21.link/LWG3881>`__ | Incorrect formatting of container adapters backed by ``std::string`` | February 2023 | |Complete| | 17.0 | |format| |