diff --git a/issue4057.html b/issue4057.html index 94b0237ad3..c1a1041ea9 100644 --- a/issue4057.html +++ b/issue4057.html @@ -64,7 +64,7 @@

This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.

4057. generator::iterator's operator* is not noexcept when it can be

Section: 26.8.6 [coro.generator.iterator] Status: New - Submitter: S. B. Tam Opened: 2024-03-01 Last modified: 2024-06-24

+ Submitter: S. B. Tam Opened: 2024-03-01 Last modified: 2024-09-17

Priority: 3

View other active issues in [coro.generator.iterator].

@@ -78,16 +78,16 @@

4057. generator::iterator noexcept(is_nothrow_copy_constructible_v<reference>)

-When reference is an rvalue reference type, is_nothrow_copy_constructible_v<reference> -is false (because reference is not copy constructible), which means operator* +When reference is an rvalue reference type, is_nothrow_copy_constructible_v<reference> +is false (because reference is not copy constructible), which means operator* is not noexcept.

-However, operator* doesn't perform any potentially-throwing operation in this case. It's effect is -equivalent to return static_cast<reference>(*p.value_); (where the type of p.value_ -is effectively add_pointer_t<reference>). Neither the dereference nor the cast to rvalue +However, operator* doesn't perform any potentially-throwing operation in this case. It's effect is +equivalent to return static_cast<reference>(*p.value_); (where the type of p.value_ +is effectively add_pointer_t<reference>). Neither the dereference nor the cast to rvalue reference can throw an exception.

-I think the expression inside the noexcept-specifier should be changed to +I think the expression inside the noexcept-specifier should be changed to noexcept(static_cast<reference>(*p.value_)).

@@ -99,9 +99,45 @@

4057. generator::iterator "Maybe add is_reference_v<reference> || ..."

+

[2024-09-16; Casey provides wording]

+ +

+In the prioritization thread, LWG discussed a couple of alternatives without much enthusiasm. One +of the alternatives was to simply remove the noexcept-specifier, which seems to be the most +efficient use of LWG's time. +

+

Proposed resolution:

+

+This wording is relative to N4988. +

+ +
    +
  1. Modify 26.8.6 [coro.generator.iterator] as indicated:

    +
    +
    +namespace std {
    +  template<class Ref, class Val, class Allocator>
    +  class generator<Ref, Val, Allocator>::iterator {
    +    […]
    +    reference operator*() const noexcept(is_nothrow_copy_constructible_v<reference>);
    +    […]
    +  };
    +}
    +
    +[…] +

    -3- Returns: *this.

    +
    +reference operator*() const noexcept(is_nothrow_copy_constructible_v<reference>l);
    +
    +

    -4- Preconditions: For some generator object x, coroutine_ is in *x.active_ and +x.active_->top() refers to a suspended coroutine with promise object p.

    +
    +
  2. +
+ diff --git a/lwg-active.html b/lwg-active.html index 9f1369ada4..59b5c8740c 100644 --- a/lwg-active.html +++ b/lwg-active.html @@ -79,7 +79,7 @@

C++ Standard Library Active Issues List (Revision D125)

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Reference ISO/IEC IS 14882:2020(E)

Also see:

@@ -59817,7 +59817,7 @@

40554057(i). generator::iterator's operator* is not noexcept when it can be

Section: 26.8.6 [coro.generator.iterator] Status: New - Submitter: S. B. Tam Opened: 2024-03-01 Last modified: 2024-06-24

+ Submitter: S. B. Tam Opened: 2024-03-01 Last modified: 2024-09-17

Priority: 3

View other active issues in [coro.generator.iterator].

@@ -59831,16 +59831,16 @@

40574057is_reference_v<reference> || ..."

+

[2024-09-16; Casey provides wording]

+ +

+In the prioritization thread, LWG discussed a couple of alternatives without much enthusiasm. One +of the alternatives was to simply remove the noexcept-specifier, which seems to be the most +efficient use of LWG's time. +

+

Proposed resolution:

+

+This wording is relative to N4988. +

+ +
    +
  1. Modify 26.8.6 [coro.generator.iterator] as indicated:

    +
    +
    +namespace std {
    +  template<class Ref, class Val, class Allocator>
    +  class generator<Ref, Val, Allocator>::iterator {
    +    […]
    +    reference operator*() const noexcept(is_nothrow_copy_constructible_v<reference>);
    +    […]
    +  };
    +}
    +
    +[…] +

    -3- Returns: *this.

    +
    +reference operator*() const noexcept(is_nothrow_copy_constructible_v<reference>l);
    +
    +

    -4- Preconditions: For some generator object x, coroutine_ is in *x.active_ and +x.active_->top() refers to a suspended coroutine with promise object p.

    +
    +
  2. +
+ diff --git a/lwg-closed.html b/lwg-closed.html index c428febaac..d494d397cf 100644 --- a/lwg-closed.html +++ b/lwg-closed.html @@ -79,7 +79,7 @@

C++ Standard Library Closed Issues List (Revision D125)

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Reference ISO/IEC IS 14882:2020(E)

Also see:

diff --git a/lwg-defects.html b/lwg-defects.html index 901cfa432c..5e4ee35798 100644 --- a/lwg-defects.html +++ b/lwg-defects.html @@ -79,7 +79,7 @@

C++ Standard Library Defect Reports and Accepted Issues (Revision D125)

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Reference ISO/IEC IS 14882:2020(E)

Also see:

diff --git a/lwg-immediate.html b/lwg-immediate.html index d1dd4e2c67..ff764eee34 100644 --- a/lwg-immediate.html +++ b/lwg-immediate.html @@ -62,7 +62,7 @@

C++ Standard Library Issues Resolved Directly In [INSERT CURRENT MEETING HER Date: -Revised 2024-09-17 at 10:17:21 UTC +Revised 2024-09-17 at 14:18:40 UTC diff --git a/lwg-index-open.html b/lwg-index-open.html index 7cf5467c28..04b9e12bf3 100644 --- a/lwg-index-open.html +++ b/lwg-index-open.html @@ -66,7 +66,7 @@

Index by Section

This document is the Index by Section for the Library Active Issues List.

Index by Section (non-Ready active issues only)

(view all issues)

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Section 3 (2 issues)

(view all issues)

@@ -3637,21 +3637,21 @@

Section 26 (61 issues)

- + - + - + - + - - - + + +
4117(i)4057(i) New 26.8.6 [coro.generator.iterator]generator::iterator should provide iterator_conceptgenerator::iterator's operator* is not noexcept when it can be Yes43
4057(i)4117(i) New 26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beNo3generator::iterator should provide iterator_conceptYes4
diff --git a/lwg-index.html b/lwg-index.html index 0a82311852..3bd30b7c2a 100644 --- a/lwg-index.html +++ b/lwg-index.html @@ -66,7 +66,7 @@

Index by Section

This document is the Index by Section for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

Index by Section

(view only non-Ready open issues)

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Section 2 (2 issues)

@@ -19422,21 +19422,21 @@

Section 26 (228 issues)

- + - + - + - + - - - + + + diff --git a/lwg-ready.html b/lwg-ready.html index 1a7e6b1aac..4a9e08eea6 100644 --- a/lwg-ready.html +++ b/lwg-ready.html @@ -62,7 +62,7 @@

C++ Standard Library Issues to be moved in [INSERT CURRENT MEETING HERE]

- diff --git a/lwg-status-date.html b/lwg-status-date.html index a6a4799a61..0a2113711b 100644 --- a/lwg-status-date.html +++ b/lwg-status-date.html @@ -67,7 +67,7 @@

Index by Status and Date

This document is the Index by Status and Date for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Ready (11 issues)

4117(i)4057(i) New 26.8.6 [coro.generator.iterator]generator::iterator should provide iterator_conceptgenerator::iterator's operator* is not noexcept when it can be Yes43
4057(i)4117(i) New 26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beNo3generator::iterator should provide iterator_conceptYes4
Date:Revised 2024-09-17 at 10:17:21 UTC +Revised 2024-09-17 at 14:18:40 UTC
@@ -345,6 +345,15 @@

New (436 issues)

+ + + + + + + + + @@ -880,15 +889,6 @@

New (436 issues)

- - - - - - - - - diff --git a/lwg-status.html b/lwg-status.html index b0e8698d59..dc90a8c3b1 100644 --- a/lwg-status.html +++ b/lwg-status.html @@ -62,7 +62,7 @@

Index by Status and Section

Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Ready (11 issues)

Duplicates
4057(i)New26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beYes3
4152(i) New 23.2.2 [char.traits.require]
4057(i)New26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beNo3
4093(i) New 27.6.18 [alg.fold]
@@ -3002,21 +3002,21 @@

New (436 issues)

- + - + - + - + - - - + + + diff --git a/lwg-tentative.html b/lwg-tentative.html index 90593e9e96..dc686f5d9d 100644 --- a/lwg-tentative.html +++ b/lwg-tentative.html @@ -54,7 +54,7 @@ -

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Tentative Issues


3908(i). enumerate_view::iterator constructor is explicit

diff --git a/lwg-toc.html b/lwg-toc.html index a4fef73dad..08ebcc05c5 100644 --- a/lwg-toc.html +++ b/lwg-toc.html @@ -59,7 +59,7 @@

Table of Contents

Reference ISO/IEC IS 14882:2020(E)

This document is the Table of Contents for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

4117(i)4057(i) New 26.8.6 [coro.generator.iterator]generator::iterator should provide iterator_conceptgenerator::iterator's operator* is not noexcept when it can be Yes43
4057(i)4117(i) New 26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beNo3generator::iterator should provide iterator_conceptYes4
@@ -32462,7 +32462,7 @@

Table of Contents

- + diff --git a/lwg-unresolved.html b/lwg-unresolved.html index 7dfcbfe8f4..5189e85eff 100644 --- a/lwg-unresolved.html +++ b/lwg-unresolved.html @@ -54,7 +54,7 @@ -

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Unresolved Issues


423(i). Effects of negative streamsize in iostreams

@@ -55880,7 +55880,7 @@

40554057(i). generator::iterator's operator* is not noexcept when it can be

Section: 26.8.6 [coro.generator.iterator] Status: New - Submitter: S. B. Tam Opened: 2024-03-01 Last modified: 2024-06-24

+ Submitter: S. B. Tam Opened: 2024-03-01 Last modified: 2024-09-17

Priority: 3

View other active issues in [coro.generator.iterator].

@@ -55894,16 +55894,16 @@

40574057is_reference_v<reference> || ..."

+

[2024-09-16; Casey provides wording]

+ +

+In the prioritization thread, LWG discussed a couple of alternatives without much enthusiasm. One +of the alternatives was to simply remove the noexcept-specifier, which seems to be the most +efficient use of LWG's time. +

+

Proposed resolution:

+

+This wording is relative to N4988. +

+ +
    +
  1. Modify 26.8.6 [coro.generator.iterator] as indicated:

    +
    +
    +namespace std {
    +  template<class Ref, class Val, class Allocator>
    +  class generator<Ref, Val, Allocator>::iterator {
    +    […]
    +    reference operator*() const noexcept(is_nothrow_copy_constructible_v<reference>);
    +    […]
    +  };
    +}
    +
    +[…] +

    -3- Returns: *this.

    +
    +reference operator*() const noexcept(is_nothrow_copy_constructible_v<reference>l);
    +
    +

    -4- Preconditions: For some generator object x, coroutine_ is in *x.active_ and +x.active_->top() refers to a suspended coroutine with promise object p.

    +
    +
  2. +
+ diff --git a/unresolved-index.html b/unresolved-index.html index b6cac288bc..758b102ef6 100644 --- a/unresolved-index.html +++ b/unresolved-index.html @@ -66,7 +66,7 @@

Index by Section

This document is the Index by Section for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

Index by Section

(view only non-Ready open issues)

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Section 3 (2 issues)

(view only non-Ready open issues)

Issue New 26.8.6 [coro.generator.iterator] generator::iterator's operator* is not noexcept when it can beNoYes 3
@@ -3545,21 +3545,21 @@

Section 26 (54 issues)

- + - + - + - + - - - + + +
4117(i)4057(i) New 26.8.6 [coro.generator.iterator]generator::iterator should provide iterator_conceptgenerator::iterator's operator* is not noexcept when it can be Yes43
4057(i)4117(i) New 26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beNo3generator::iterator should provide iterator_conceptYes4
diff --git a/unresolved-prioritized.html b/unresolved-prioritized.html index 4cb09b60bb..76479d5d2e 100644 --- a/unresolved-prioritized.html +++ b/unresolved-prioritized.html @@ -60,7 +60,7 @@

Table of Contents

This document is the Table of Contents for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List, sorted by priority.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Priority 1 (2 issues)

@@ -2826,7 +2826,7 @@

Priority 3 (375 issues)

- + @@ -3276,19 +3276,19 @@

Priority 3 (375 issues)

- + - + - + - + diff --git a/unresolved-status-date.html b/unresolved-status-date.html index 12cc792c81..6901898ed8 100644 --- a/unresolved-status-date.html +++ b/unresolved-status-date.html @@ -67,7 +67,7 @@

Index by Status and Date

This document is the Index by Status and Date for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

New (436 issues)

New 26.8.6 [coro.generator.iterator] generator::iterator's operator* is not noexcept when it can beNoYes 3
2702(i)2703(i) New 30.4.3.3.3 [facet.num.put.virtuals]num_put::do_put(..., bool) performs ill-formed do_put callNo provision for fill-padding when boolalpha is set No 3
2703(i)2702(i) New 30.4.3.3.3 [facet.num.put.virtuals]No provision for fill-padding when boolalpha is setnum_put::do_put(..., bool) performs ill-formed do_put call No 3
@@ -80,6 +80,15 @@

Index by Status and Date

+ + + + + + + + + @@ -615,15 +624,6 @@

Index by Status and Date

- - - - - - - - - diff --git a/unresolved-status.html b/unresolved-status.html index 493c0c8b04..a64f180d2d 100644 --- a/unresolved-status.html +++ b/unresolved-status.html @@ -62,7 +62,7 @@

Index by Status and Section

Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

New (436 issues)

Duplicates
4057(i)New26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beYes3
4152(i) New 23.2.2 [char.traits.require]
4057(i)New26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beNo3
4093(i) New 27.6.18 [alg.fold]
@@ -2737,21 +2737,21 @@

Index by Status and Section

- + - + - + - + - - - + + + diff --git a/unresolved-toc.html b/unresolved-toc.html index 78085944f8..17159f6f98 100644 --- a/unresolved-toc.html +++ b/unresolved-toc.html @@ -59,7 +59,7 @@

Table of Contents

Reference ISO/IEC IS 14882:2020(E)

This document is the Table of Contents for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

4117(i)4057(i) New 26.8.6 [coro.generator.iterator]generator::iterator should provide iterator_conceptgenerator::iterator's operator* is not noexcept when it can be Yes43
4057(i)4117(i) New 26.8.6 [coro.generator.iterator]generator::iterator's operator* is not noexcept when it can beNo3generator::iterator should provide iterator_conceptYes4
@@ -4490,7 +4490,7 @@

Table of Contents

- + diff --git a/votable-index.html b/votable-index.html index 25de6d16b1..f456fef9ae 100644 --- a/votable-index.html +++ b/votable-index.html @@ -66,7 +66,7 @@

Index by Section

This document is the Index by Section for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

Index by Section

(view only non-Ready open issues)

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Section 17 (1 issues)

(view only non-Ready open issues)

Issue New 26.8.6 [coro.generator.iterator] generator::iterator's operator* is not noexcept when it can beNoYes 3
diff --git a/votable-status-date.html b/votable-status-date.html index 00480caf02..d92ec97620 100644 --- a/votable-status-date.html +++ b/votable-status-date.html @@ -67,7 +67,7 @@

Index by Status and Date

This document is the Index by Status and Date for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Ready (11 issues)

diff --git a/votable-status.html b/votable-status.html index 55859afafd..4bebacaf6b 100644 --- a/votable-status.html +++ b/votable-status.html @@ -62,7 +62,7 @@

Index by Status and Section

Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Ready (11 issues)

diff --git a/votable-toc.html b/votable-toc.html index d85831dfeb..8103c69b43 100644 --- a/votable-toc.html +++ b/votable-toc.html @@ -59,7 +59,7 @@

Table of Contents

Reference ISO/IEC IS 14882:2020(E)

This document is the Table of Contents for the Library Active Issues List, Library Defect Reports and Accepted Issues, and Library Closed Issues List.

-

Revised 2024-09-17 at 10:17:21 UTC +

Revised 2024-09-17 at 14:18:40 UTC

Issue