diff --git a/xml/issue3044.xml b/xml/issue3044.xml
index dafee9f101..d07c443d09 100644
--- a/xml/issue3044.xml
+++ b/xml/issue3044.xml
@@ -182,7 +182,7 @@ This wording is relative to
diff --git a/xml/issue3785.xml b/xml/issue3785.xml index 7f2b96fe13..8e3663f420 100644 --- a/xml/issue3785.xml +++ b/xml/issue3785.xml @@ -63,20 +63,21 @@ template<class C, input_range R, class... Args> requires (!view<C>)--2- In subclause
, +-2- In subclause , +
- diff --git a/xml/issue3577.xml b/xml/issue3577.xml index 9b0a17adf4..fa3e5eef32 100644 --- a/xml/issue3577.xml +++ b/xml/issue3577.xml @@ -54,7 +54,7 @@ as the case position == i is taken care of. Set priority to 3 after reflector poll. Tim Song commented: -"I think the current PR of LWG
(2.1) — […]
bans this code, +"I think the current PR of LWG bans this code, but we might want to have consistency with list::merge
instead." diff --git a/xml/issue3613.xml b/xml/issue3613.xml index 3382da851b..e611cd2b66 100644 --- a/xml/issue3613.xml +++ b/xml/issue3613.xml @@ -19,11 +19,11 @@ doesn't clearly state that the type is copyable,nullopt_t is defined differently from other such types is to avoid ambiguity in expressions that assign an empty brace initializer to an optional. - + The meaning of such assignment should be to engage the optional instead of taking the braces to create a temporary nullopt_t for assignment and thus reset the optional. -+ The RHS of such assignment should be a temporary empty optional instead of a temporary nullopt_t. diff --git a/xml/issue3633.xml b/xml/issue3633.xml index f999475fa5..bedfd0f491 100644 --- a/xml/issue3633.xml +++ b/xml/issue3633.xml @@ -57,7 +57,7 @@ Set priority to 3 after reflector poll.
This PR would allow-atomic<int> x, y = std::move(x); +atomic<int> x, y = std::move(x);because const volatile& doesn't bind to rvalues. It sounds like we'll need to delete both const volatile& and const volatile&&. diff --git a/xml/issue3668.xml b/xml/issue3668.xml index 393069a471..32a6c7fcaf 100644 --- a/xml/issue3668.xml +++ b/xml/issue3668.xml @@ -51,7 +51,7 @@ This wording is relative to. -
+Modify
+as indicated: - -
Modify
as indicated: @@ -102,7 +102,7 @@ end iterator and does not report an error.
Modify
+as indicated: Modify
as indicated: diff --git a/xml/issue3714.xml b/xml/issue3714.xml index f8970ccb40..17e5354f90 100644 --- a/xml/issue3714.xml +++ b/xml/issue3714.xml @@ -3,9 +3,14 @@
Non-single-argument constructors for range adaptors should not be explicit -- - + + + + + + + + Hewill Kang 10 Jun 2022 4 diff --git a/xml/issue3719.xml b/xml/issue3719.xml index ab8dec9c76..03a80da019 100644 --- a/xml/issue3719.xml +++ b/xml/issue3719.xml @@ -153,7 +153,7 @@ namespace std { class traits = regex_traits<charT>> class regex_iterator { […] - regex_iterator& operator=(const regex_iterator&); + regex_iterator& operator=(const regex_iterator&); bool operator==(const regex_iterator&) const; bool operator==(default_sentinel_t) const { return *this == regex_iterator(); } const value_type& operator*() const; @@ -172,7 +172,7 @@ namespace std { class traits = regex_traits<charT>> class regex_token_iterator { […] - regex_iterator& operator=(const regex_token_iterator&); + regex_iterator& operator=(const regex_token_iterator&); bool operator==(const regex_token_iterator&) const; bool operator==(default_sentinel_t) const { return *this == regex_token_iterator(); } const value_type& operator*() const; diff --git a/xml/issue3722.xml b/xml/issue3722.xml index 792c11a7ca..0775021627 100644 --- a/xml/issue3722.xml +++ b/xml/issue3722.xml @@ -70,20 +70,21 @@ template<class C, input_range R, class... Args> requires (!view<C>) -1- Returns: An object of type C constructed from the elements of r in the following manner:-
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
(1.1.1) — If constructible_from<C, R, Args...> is true:
C(std::forward<R>(r), std::forward<Args>(args)...)- -
(1.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
C(from_range, std::forward<R>(r), std::forward<Args>(args)...)- +
(1.1.3) — Otherwise, if
(1.1.3) — Otherwise, if
-
(1.1.3.1) — common_range<R> is true,
(1.1.3.2) — cpp17-input-iterator<iterator_t<R>> is true, and
(1.1.3.3) — constructible_from<C, iterator_t<R>, sentinel_t<R>, Args...> is true:
C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)- +
(1.1.4) — Otherwise, if
(1.1.4) — Otherwise, if
(1.1.4.1) — constructible_from<C, Args...> is true, and
(1.1.4.2) — container-insertable<C, range_reference_t<R>> is true:
@@ -98,7 +99,9 @@ if constexpr (sized_range<R> && reservable-container<C&g ranges::copy(r, container-inserter<range_reference_t<R>>(c));+ + (1.2) — Otherwise, if input_range<range_reference_t<R>> is true:
to<C>(r | views::transform([](auto&& elem) { diff --git a/xml/issue3733.xml b/xml/issue3733.xml index 9ee6370cfb..3e70336063 100644 --- a/xml/issue3733.xml +++ b/xml/issue3733.xml @@ -59,13 +59,13 @@ template<class C, input_range R, class... Args> requires (!view<C>) -1- Returns: An object of type C constructed from the elements of r in the following manner:-
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
(1.1.1) — If constructible_from<C, R, Args...> is true:
C(std::forward<R>(r), std::forward<Args>(args)...)- -
(1.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
C(from_range, std::forward<R>(r), std::forward<Args>(args)...)- +
(1.1.3) — Otherwise, if
(1.1.3) — Otherwise, if
-
(1.1.3.1) — common_range<R> is true,
(1.1.3.2) —
cpp17-input-iteratorderived_from<typename @@ -74,7 +74,8 @@ is true, and(1.1.3.3) — constructible_from<C, iterator_t<R>, sentinel_t<R>, Args...> is true:
C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)- +
(1.1.4) — Otherwise, if
(1.1.4) — Otherwise, if
(1.1.4.1) — constructible_from<C, Args...> is true, and
- […]
(1.1.4.2) — container-insertable<C, range_reference_t<R>> is true:
@@ -82,7 +83,9 @@ is true, and+ + (1.2) — Otherwise, if input_range<range_reference_t<R>> is true:
to<C>(r | views::transform([](auto&& elem) { @@ -175,13 +178,13 @@ template<class C, input_range R, class... Args> requires (!view<C>) -1- Returns: An object of type C constructed from the elements of r in the following manner:-
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
(1.1.1) — If constructible_from<C, R, Args...> is true:
C(std::forward<R>(r), std::forward<Args>(args)...)- -
(1.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
C(from_range, std::forward<R>(r), std::forward<Args>(args)...)- +
(1.1.3) — Otherwise, if
(1.1.3) — Otherwise, if
-
(1.1.3.1) — common_range<R> is true,
(1.1.3.2) —
cpp17-input-iteratorif the qualified-id @@ -190,7 +193,8 @@ template<class C, input_range R, class... Args> requires (!view<C>)(1.1.3.3) — constructible_from<C, iterator_t<R>, sentinel_t<R>, Args...>:
C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)- +
(1.1.4) — Otherwise, if
(1.1.4) — Otherwise, if
(1.1.4.1) — constructible_from<C, Args...> is true, and
(1.1.4.2) — container-insertable<C, range_reference_t<R>> is true:
@@ -198,7 +202,9 @@ template<class C, input_range R, class... Args> requires (!view<C>) […]+ + (1.2) — Otherwise, if input_range<range_reference_t<R>> is true:
to<C>(r | views::transform([](auto&& elem) { diff --git a/xml/issue3743.xml b/xml/issue3743.xml index 250af9f9d2..1ab9dab011 100644 --- a/xml/issue3743.xml +++ b/xml/issue3743.xml @@ -64,20 +64,21 @@ template<class C, input_range R, class... Args> requires (!view<C>) -1- Returns: An object of type C constructed from the elements of r in the following manner:-
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
-
- -
(1.1.1) — If constructible_from<C, R, Args...> is true:
C(std::forward<R>(r), std::forward<Args>(args)...)-- -
(1.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
C(from_range, std::forward<R>(r), std::forward<Args>(args)...)-- +
(1.1.3) — Otherwise, if
- +
(1.1.1) — If constructible_from<C, R, Args...> is true:
+C(std::forward<R>(r), std::forward<Args>(args)...)- +
(1.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
+C(from_range, std::forward<R>(r), std::forward<Args>(args)...)(1.1.3) — Otherwise, if
-
(1.1.3.1) — common_range<R> is true,
- -
(1.1.3.2) — cpp17-input-iterator<iterator_t<R>> is true, and
- -
(1.1.3.3) — constructible_from<C, iterator_t<R>, sentinel_t<R>, Args...> is true:
C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)+(1.1.3.3) — constructible_from<C, iterator_t<R>, sentinel_t<R>, Args...> is true:
+C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)- +
(1.1.4) — Otherwise, if
(1.1.4) — Otherwise, if
(1.1.4.1) — constructible_from<C, Args...> is true, and
(1.1.4.2) — container-insertable<C, range_reference_t<R>> is true:
@@ -88,7 +89,9 @@ if constexpr (sized_range<R> && reservable-container<C&g ranges::copy(r, container-inserter<range_reference_t<R>>(c));+ (1.2) — Otherwise, if input_range<range_reference_t<R>> is true:
to<C>(r | views::transform([](auto&& elem) { diff --git a/xml/issue3754.xml b/xml/issue3754.xml index 8ced0a81ec..be7f00febb 100644 --- a/xml/issue3754.xml +++ b/xml/issue3754.xml @@ -95,7 +95,7 @@ template<class... Args>// 22.8.7.2, constructors constexpr expected() noexcept; -constexpr expected(const expected&); +constexpr expected(const expected&); constexpr expected(expected&&) noexcept(see below); template<class U, class G> constexpr explicit(see below) expected(const expected<U, G>&&); diff --git a/xml/issue3773.xml b/xml/issue3773.xml index abb2840508..8560c0a0d5 100644 --- a/xml/issue3773.xml +++ b/xml/issue3773.xml @@ -40,7 +40,7 @@ Let F be a subexpression, and let Es... be a pack of subexpressions.-
- +
(2.1) — If Es is an empty pack, let FD be decay_t<decltype((F))>.
(2.1) — If Es is an empty pack, let FD be decay_t<decltype((F))>.
(2.1.1) — If move_constructible
copy_constructible<FD> && regular_invocable<FD&> is false, or if decay_t<invoke_result_t<FD&>> is not an object type, views::zip_transform(F, Es...) is ill-formed.(2.1.2) — Otherwise, the expression views::zip_transform(F, Es...) is expression-equivalent to
@@ -48,6 +48,7 @@ and let Es... be a pack of subexpressions. ((void)F, auto(views::empty<decay_t<invoke_result_t<FD&>>>))(2.2) — Otherwise, the expression views::zip_transform(F, Es...) is expression-equivalent to zip_transform_view(F, Es...).
(1.1) — If C does not satisfy input_range or -convertible_to<range_reference_t<R>, range_value_t<C>> is true:
(1.1.1) — If constructible_from<C, R, Args...> is true:
C(std::forward<R>(r), std::forward<Args>(args)...)-
(1.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
C(from_range, std::forward<R>(r), std::forward<Args>(args)...)-
(1.1.3) — Otherwise, if
(1.1.1) — If constructible_from<C, R, Args...> is true:
+C(std::forward<R>(r), std::forward<Args>(args)...)
(1.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
+C(from_range, std::forward<R>(r), std::forward<Args>(args)...)
(1.1.3) — Otherwise, if
(1.1.3.1) — common_range<R> is true,
(1.1.3.2) — cpp17-input-iterator<iterator_t<R>> is true, and
(1.1.3.3) — constructible_from<C, iterator_t<R>, sentinel_t<R>, Args...> is true:
C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)+
(1.1.3.3) — constructible_from<C, iterator_t<R>, sentinel_t<R>, Args...> is true:
+C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)
(1.1.4) — Otherwise, if
(1.1.4) — Otherwise, if
(1.1.4.1) — constructible_from<C, Args...> is true, and
(1.1.4.2) — container-insertable<C, range_reference_t<R>> is true:
@@ -87,7 +88,9 @@ if constexpr (sized_range<R> && reservable-container<C&g ranges::copy(r, container-inserter<range_reference_t<R>>(c));(1.2) — Otherwise, if input_range<range_reference_t<R>> is true:
diff --git a/xml/issue3878.xml b/xml/issue3878.xml index 4ee0d5078c..0d1a653e4d 100644 --- a/xml/issue3878.xml +++ b/xml/issue3878.xml @@ -7,7 +7,7 @@to<C>(r | views::transform([](auto&& elem) { diff --git a/xml/issue3787.xml b/xml/issue3787.xml index 3e3338d136..54ad85b88b 100644 --- a/xml/issue3787.xml +++ b/xml/issue3787.xml @@ -27,7 +27,7 @@ but no consensus.Issaquah 2023-02-08; LWG -This would be resolved by LWG
. +This would be resolved by LWG . 2023-03-22 LWG 3847 was approved in Issaquah. Status changed: New → Resolved. diff --git a/xml/issue3827.xml b/xml/issue3827.xml index 7d42cc1ecb..0dfdd53a95 100644 --- a/xml/issue3827.xml +++ b/xml/issue3827.xml @@ -3,7 +3,7 @@Deprecate <stdalign.h> and <stdbool.h> macros -+ , GB 10 Nov 2022 99 diff --git a/xml/issue3840.xml b/xml/issue3840.xml index f06f074ffe..bfb3b85c05 100644 --- a/xml/issue3840.xml +++ b/xml/issue3840.xml @@ -69,7 +69,7 @@ This wording is relative to. -
Restore the u8path declarations to
, header + Restore the u8path declarations to
, header <filesystem> synopsis, as indicated: diff --git a/xml/issue3841.xml b/xml/issue3841.xml index 7865b1cf1f..1e677eedb9 100644 --- a/xml/issue3841.xml +++ b/xml/issue3841.xml @@ -37,7 +37,7 @@ This wording is relative todiff --git a/xml/issue3847.xml b/xml/issue3847.xml index 930f13341d..c0637fa4e3 100644 --- a/xml/issue3847.xml +++ b/xml/issue3847.xml @@ -93,7 +93,7 @@ template<template<class...> class C, class... Args>. -
Modify
+, header <version> synopsis, as indicated: Modify
, header <version> synopsis, as indicated: diff --git a/xml/issue3842.xml b/xml/issue3842.xml index b5c9d18883..201f2277de 100644 --- a/xml/issue3842.xml +++ b/xml/issue3842.xml @@ -54,7 +54,7 @@ This wording is relative to
. -
Modify
+as indicated: Modify
as indicated: diff --git a/xml/issue3845.xml b/xml/issue3845.xml index 0cba94b85c..10928cdadc 100644 --- a/xml/issue3845.xml +++ b/xml/issue3845.xml @@ -48,14 +48,14 @@ This wording is relative to
. -1- Returns: An object of type C constructed from the elements of r in the following manner: -
- +
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
(1.1) — If convertible_to<range_reference_t<R>, range_value_t<C>> is true:
-
+- -
(1.1.1) — If constructible_from<C, R, Args...> is true:
C(std::forward<R>(r), std::forward<Args>(args)...)-- -
(1.1.2) — Otherwise, if constructible_from<C, const from_range_t&, R, Args...> is true:
C(from_range, std::forward<R>(r), std::forward<Args>(args)...)- […] -- +
(1.1.1) — If constructible_from<C, R, Args...> is true:
+C(std::forward<R>(r), std::forward<Args>(args)...)- +
(1.1.2) — Otherwise, if constructible_from<C, const from_range_t&, R, Args...> is true:
+C(from_range, std::forward<R>(r), std::forward<Args>(args)...)- […]
+Issaquah 2023-02-08; LWG Unanimous consent to move to Immediate. -This also resolves LWG
. +This also resolves LWG . 2023-02-13 Approved at February 2023 meeting in Issaquah. Status changed: Immediate → WP. diff --git a/xml/issue3852.xml b/xml/issue3852.xml index 99162941e8..61f712fd9a 100644 --- a/xml/issue3852.xml +++ b/xml/issue3852.xml @@ -107,8 +107,8 @@ namespace std::ranges { -?- Remarks: The exception specification is equivalent to:- noexcept(ranges::iter_move(declval<const InnerIter&>())) && - noexcept(ranges::iter_move(declval<const PatternIter&>())) && + noexcept(ranges::iter_move(declval<const InnerIter&>())) && + noexcept(ranges::iter_move(declval<const PatternIter&>())) && is_nothrow_convertible_v<iter_rvalue_reference_t<InnerIter>, rvalue_reference> && is_nothrow_convertible_v<iter_rvalue_reference_t<PatternIter>, rvalue_reference>@@ -133,8 +133,8 @@ namespace std::ranges { -?- Remarks: The exception specification is equivalent to:- noexcept(ranges::iter_swap(declval<const InnerIter&>(), declval<const InnerIter&>())) && - noexcept(ranges::iter_swap(declval<const PatternIter&>(), declval<const PatternIter&>()))+ noexcept(ranges::iter_swap(declval<const InnerIter&>(), declval<const InnerIter&>())) && + noexcept(ranges::iter_swap(declval<const PatternIter&>(), declval<const PatternIter&>()))
In the old world, #include <iostream> diff --git a/xml/issue3958.xml b/xml/issue3958.xml index 177b39fb90..ec8cca9814 100644 --- a/xml/issue3958.xml +++ b/xml/issue3958.xml @@ -69,13 +69,13 @@ template<class C, input_range R, class... Args> requires (!view<C>)
(2.1) — If C does not satisfy input_range or convertible_to<range_reference_t<R>, -range_value_t<C>> is true:
(2.1.1) — If constructible_from<C, R, Args...> is true:
C(std::forward<R>(r), std::forward<Args>(args)...)
(2.1.2) — Otherwise, if constructible_from<C, from_range_t, R, Args...> is true:
C(from_range, std::forward<R>(r), std::forward<Args>(args)...)
(2.1.3) — Otherwise, if
(2.1.3) — Otherwise, if
(2.1.3.1) — common_range<R> is true,
(2.1.3.2) — the qualified-id
@@ -85,7 +85,8 @@ range_value_t<C>> is true:
C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)
(2.1.4) — Otherwise, if
(2.1.4) — Otherwise, if
(2.1.4.1) — constructible_from<C, Args...> is true, and
(2.1.4.2) — container-insertable<C, range_reference_t<R>> is true:
@@ -96,7 +97,8 @@ if constexpr (sized_range<R> && reservable-container<C&g ranges::copy(r, container-inserter<range_reference_t<R>>(c));(?.?.?) — Otherwise, if
(?.?.?) — Otherwise, if
(?.?.?.?) — common_range<R> is true,
(?.?.?.?) — the qualified-id iterator_traits<iterator_t<R>>::iterator_category @@ -105,7 +107,9 @@ is valid and denotes a type that models derived_from<input_iterator_tag&g is true:
C(ranges::begin(r), ranges::end(r), std::forward<Args>(args)...)
(2.2) — Otherwise, if input_range<range_reference_t<R>> is true:
to<C>(r | views::transform([](auto&& elem) { diff --git a/xml/issue3962.xml b/xml/issue3962.xml index 2fa2df7f37..af69cf25b5 100644 --- a/xml/issue3962.xml +++ b/xml/issue3962.xml @@ -41,13 +41,13 @@ argument to from_stream.-
%j +%j
If the type being parsedParsable is a specialization of duration, a decimal number of days.- %S +%S
The seconds as a decimal number. The modified command %NS specifies the maximum number of diff --git a/xml/issue3981.xml b/xml/issue3981.xml index 4c3f770f08..e3c88c4fb3 100644 --- a/xml/issue3981.xml +++ b/xml/issue3981.xml @@ -69,7 +69,7 @@ following expressions are equivalent:
- -
(2.1) — t is a unary function object that accepts a range argument and returns a cv-unqualified class object,
[…]
+[…]
then the implementation ensures that t is a range adaptor closure object. diff --git a/xml/lwg-issue.dtd b/xml/lwg-issue.dtd index 4499363cb0..d0c58fdbe0 100644 --- a/xml/lwg-issue.dtd +++ b/xml/lwg-issue.dtd @@ -42,6 +42,7 @@ + @@ -51,6 +52,7 @@ + @@ -109,7 +111,7 @@ "(mfenced|mi|mo|mn|msup|mtext|ms|mspace|mprescripts|mfrac|msqrt|mroot|mrow|mstyle| msub|msup|msubsup|munder|mover|munderover|mmultiscripts|mtable|mtr|mlabeledtr| mtd)*"> - + + @@ -277,6 +280,7 @@ + @@ -310,9 +314,12 @@ + + + @@ -327,6 +334,7 @@ +