diff --git a/issue4174.html b/issue4174.html index 58a7b8c1a8..f4b5df6e23 100644 --- a/issue4174.html +++ b/issue4174.html @@ -2,8 +2,8 @@ -Issue 4174: Refer back to container requirements when extending them - +Issue 4174: How does [atomics.order] p3 apply when then modification is an initialization? + @@ -62,29 +62,51 @@

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.

-

4174. Refer back to container requirements when extending them

-

Section: 23 [containers] Status: New - Submitter: Jonathan Wakely Opened: 2024-11-22 Last modified: 2024-11-25

+

4174. How does [atomics.order] p3 apply when then modification is an initialization?

+

Section: 32.5.4 [atomics.order] Status: New + Submitter: jim x Opened: 2024-11-13 Last modified: 2024-11-24

Priority: Not Prioritized

-

View other active issues in [containers].

-

View all other issues in [containers].

+

View other active issues in [atomics.order].

+

View all other issues in [atomics.order].

View all issues with New status.

Discussion:

-We sometimes give detailed specifications of container members which add -additional specification to the common requirements in -23.2.2 [container.requirements.general], for example -23.3.11.5 [vector.modifiers] defines vector::erase without actually -saying it erases any elements. The actual effects of erase are given in -23.2.4 [sequence.reqmts]. +Consider this example

+
+std::atomic<int> v = 0;
+// thread 1:
+v.load(std::memory_order::seq_cst);
+//thread 2:
+v.store(1,std::memory_order::seq_cst);
+

-Authors of library wording often struggle with this non-local form of -specification, where we sometimes do spell out container member functions -in full, and sometimes rely on distant wording that applies to all containers. -It would be easier if vector::erase referred back to -23.2.4 [sequence.reqmts]. +If the load operation reads the value 0, how are load and store operations ordered in the single total order? +According to 32.5.4 [atomics.order] p3 (emphasize mine) +

+
+

+An atomic operation A on some atomic object M is coherence-ordered before +another atomic operation B on M if +

+
    +
  1. […]

  2. +
  3. (3.3) — A and B are not the same atomic read-modify-write operation, +and there exists an atomic modification X of M such that A reads the value stored by +X and X precedes B in the modification order of M, or

  4. +
+
+

+According to 32.5.8.2 [atomics.types.operations] p3 (emphasize mine) +

+
+Effects: Initializes the object with the value desired. Initialization is not an atomic operation +(6.9.2 [intro.multithread]). +
+

+So, how does 32.5.4 [atomics.order] p3 apply to this example such that the load operation precedes +the store operation in the single total order S?

diff --git a/issue4176.html b/issue4176.html new file mode 100644 index 0000000000..a4a89e6790 --- /dev/null +++ b/issue4176.html @@ -0,0 +1,100 @@ + + + + +Issue 4176: Refer back to container requirements when extending them + + + + + + + + + +
+

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.

+

4176. Refer back to container requirements when extending them

+

Section: 23 [containers] Status: New + Submitter: Jonathan Wakely Opened: 2024-11-22 Last modified: 2024-11-25

+

Priority: Not Prioritized +

+

View other active issues in [containers].

+

View all other issues in [containers].

+

View all issues with New status.

+

Discussion:

+

+We sometimes give detailed specifications of container members which add +additional specification to the common requirements in +23.2.2 [container.requirements.general], for example +23.3.11.5 [vector.modifiers] defines vector::erase without actually +saying it erases any elements. The actual effects of erase are given in +23.2.4 [sequence.reqmts]. +

+

+Authors of library wording often struggle with this non-local form of +specification, where we sometimes do spell out container member functions +in full, and sometimes rely on distant wording that applies to all containers. +It would be easier if vector::erase referred back to +23.2.4 [sequence.reqmts]. +

+ + +

Proposed resolution:

+

+

+ + + + + + + diff --git a/lwg-active.html b/lwg-active.html index 9da8dc92c4..6ae836f12d 100644 --- a/lwg-active.html +++ b/lwg-active.html @@ -79,7 +79,7 @@

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

-

Revised 2024-11-25 at 13:42:07 UTC +

Revised 2024-11-25 at 14:50:55 UTC

Reference ISO/IEC IS 14882:2020(E)

Also see:

@@ -215,7 +215,7 @@

Revision History

input_iterator are not quite right (Status: New)">4103, 4104, 4107, 4109, 4110, 4111, 4114, 4115, 4116, 4117, 4118, 4120, 4121, 4122, 4123, 4125, 4127, 4128, 4129, 4131, 4132, 4133, 4136, 4137, 4138, 4139, 4143, 4145, 4146, 4149, 4150, 4151, 4152, 4155, 4156, 4158, 4159, 4160, 4161, 4162, 4163, 4165, 4166, 4167, 4168, 4171, 4172, 4173, 4174, 4174, 4175. +max, and minmax is unclear (Status: New)">4167, 4168, 4171, 4172, 4173, 4174, 4175, 4176.
  • Added the following 4 Open issues: 3988, 4015, 4069, 4130.
  • Added the following 2 LEWG issues: 4042, 4097.
  • Added the following 2 SG1 issues: 4004, 4075.
  • @@ -71395,41 +71395,6 @@

    41744174(i). Refer back to container requirements when extending them

    -

    Section: 23 [containers] Status: New - Submitter: Jonathan Wakely Opened: 2024-11-22 Last modified: 2024-11-25

    -

    Priority: Not Prioritized -

    -

    View other active issues in [containers].

    -

    View all other issues in [containers].

    -

    View all issues with New status.

    -

    Discussion:

    -

    -We sometimes give detailed specifications of container members which add -additional specification to the common requirements in -23.2.2 [container.requirements.general], for example -23.3.11.5 [vector.modifiers] defines vector::erase without actually -saying it erases any elements. The actual effects of erase are given in -23.2.4 [sequence.reqmts]. -

    -

    -Authors of library wording often struggle with this non-local form of -specification, where we sometimes do spell out container member functions -in full, and sometimes rely on distant wording that applies to all containers. -It would be easier if vector::erase referred back to -23.2.4 [sequence.reqmts]. -

    - - -

    Proposed resolution:

    -

    -

    - - - - -

    4175(i). get_env() specified in terms of as_const() but this doesn't work with rvalue senders

    Section: 33.5.2 [exec.get.allocator], 33.5.3 [exec.get.stop.token], 33.5.4 [exec.get.env], 33.5.5 [exec.get.domain], 33.5.6 [exec.get.scheduler], 33.5.7 [exec.get.delegation.scheduler], 33.5.8 [exec.get.fwd.progress], 33.5.9 [exec.get.compl.sched] Status: New @@ -71589,5 +71554,40 @@

    41754176(i). Refer back to container requirements when extending them

    +

    Section: 23 [containers] Status: New + Submitter: Jonathan Wakely Opened: 2024-11-22 Last modified: 2024-11-25

    +

    Priority: Not Prioritized +

    +

    View other active issues in [containers].

    +

    View all other issues in [containers].

    +

    View all issues with New status.

    +

    Discussion:

    +

    +We sometimes give detailed specifications of container members which add +additional specification to the common requirements in +23.2.2 [container.requirements.general], for example +23.3.11.5 [vector.modifiers] defines vector::erase without actually +saying it erases any elements. The actual effects of erase are given in +23.2.4 [sequence.reqmts]. +

    +

    +Authors of library wording often struggle with this non-local form of +specification, where we sometimes do spell out container member functions +in full, and sometimes rely on distant wording that applies to all containers. +It would be easier if vector::erase referred back to +23.2.4 [sequence.reqmts]. +

    + + +

    Proposed resolution:

    +

    +

    + + + + + diff --git a/lwg-closed.html b/lwg-closed.html index 449c462e86..7053c971ad 100644 --- a/lwg-closed.html +++ b/lwg-closed.html @@ -79,7 +79,7 @@

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

    -

    Revised 2024-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Reference ISO/IEC IS 14882:2020(E)

    Also see:

    @@ -119,7 +119,7 @@

    Revision History

    input_iterator are not quite right (Status: New)">4103, 4104, 4107, 4109, 4110, 4111, 4114, 4115, 4116, 4117, 4118, 4120, 4121, 4122, 4123, 4125, 4127, 4128, 4129, 4131, 4132, 4133, 4136, 4137, 4138, 4139, 4143, 4145, 4146, 4149, 4150, 4151, 4152, 4155, 4156, 4158, 4159, 4160, 4161, 4162, 4163, 4165, 4166, 4167, 4168, 4171, 4172, 4173, 4174, 4174, 4175. +max, and minmax is unclear (Status: New)">4167, 4168, 4171, 4172, 4173, 4174, 4175, 4176.
  • Added the following 4 Open issues: 3988, 4015, 4069, 4130.
  • Added the following 2 LEWG issues: 4042, 4097.
  • Added the following 2 SG1 issues: 4004, 4075.
  • diff --git a/lwg-defects.html b/lwg-defects.html index 0a9ce41164..fd9b2435fb 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Reference ISO/IEC IS 14882:2020(E)

    Also see:

    @@ -120,7 +120,7 @@

    Revision History

    input_iterator are not quite right (Status: New)">4103, 4104, 4107, 4109, 4110, 4111, 4114, 4115, 4116, 4117, 4118, 4120, 4121, 4122, 4123, 4125, 4127, 4128, 4129, 4131, 4132, 4133, 4136, 4137, 4138, 4139, 4143, 4145, 4146, 4149, 4150, 4151, 4152, 4155, 4156, 4158, 4159, 4160, 4161, 4162, 4163, 4165, 4166, 4167, 4168, 4171, 4172, 4173, 4174, 4174, 4175. +max, and minmax is unclear (Status: New)">4167, 4168, 4171, 4172, 4173, 4174, 4175, 4176.
  • Added the following 4 Open issues: 3988, 4015, 4069, 4130.
  • Added the following 2 LEWG issues: 4042, 4097.
  • Added the following 2 SG1 issues: 4004, 4075.
  • diff --git a/lwg-immediate.html b/lwg-immediate.html index 2ffd681ec0..aad73d2748 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-11-25 at 13:42:07 UTC +Revised 2024-11-25 at 14:50:55 UTC diff --git a/lwg-index-open.html b/lwg-index-open.html index f387265e92..5ed77bf003 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Section 3 (2 issues)

    (view all issues)

    @@ -1835,7 +1835,7 @@

    Section 23 (57 issues)

    - + diff --git a/lwg-index.html b/lwg-index.html index 9086c65357..9df02a6b74 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Section 2 (2 issues)

    Duplicates
    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    @@ -10215,7 +10215,7 @@

    Section 23 (376 issues)

    - + diff --git a/lwg-ready.html b/lwg-ready.html index 00dc87195a..d7a5d71c77 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 e09902504a..7abc143831 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Voting (34 issues)

    Duplicates
    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    Date:Revised 2024-11-25 at 13:42:07 UTC +Revised 2024-11-25 at 14:50:55 UTC
    @@ -495,7 +495,7 @@

    New (442 issues)

    - + diff --git a/lwg-status.html b/lwg-status.html index 8578b5e746..9ab85c66d5 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Voting (34 issues)

    Duplicates
    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    @@ -1818,7 +1818,7 @@

    New (442 issues)

    - + diff --git a/lwg-tentative.html b/lwg-tentative.html index 77249cd107..6ecfdca21d 100644 --- a/lwg-tentative.html +++ b/lwg-tentative.html @@ -54,7 +54,7 @@ -

    Revised 2024-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Tentative Issues


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

    diff --git a/lwg-toc.html b/lwg-toc.html index 6fb74d2d5e..4e856cdedc 100644 --- a/lwg-toc.html +++ b/lwg-toc.html @@ -59,7 +59,7 @@

    Table of Contents

    Reference ISO/IEC IS 14882:2024(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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    @@ -33530,20 +33530,20 @@

    Table of Contents

    - + - - - + + + - + - - - + + + diff --git a/lwg-unresolved.html b/lwg-unresolved.html index 6e0d69baa8..8313214e82 100644 --- a/lwg-unresolved.html +++ b/lwg-unresolved.html @@ -54,7 +54,7 @@ -

    Revised 2024-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Unresolved Issues


    423(i). Effects of negative streamsize in iostreams

    @@ -63935,41 +63935,6 @@

    41744174(i). Refer back to container requirements when extending them

    -

    Section: 23 [containers] Status: New - Submitter: Jonathan Wakely Opened: 2024-11-22 Last modified: 2024-11-25

    -

    Priority: Not Prioritized -

    -

    View other active issues in [containers].

    -

    View all other issues in [containers].

    -

    View all issues with New status.

    -

    Discussion:

    -

    -We sometimes give detailed specifications of container members which add -additional specification to the common requirements in -23.2.2 [container.requirements.general], for example -23.3.11.5 [vector.modifiers] defines vector::erase without actually -saying it erases any elements. The actual effects of erase are given in -23.2.4 [sequence.reqmts]. -

    -

    -Authors of library wording often struggle with this non-local form of -specification, where we sometimes do spell out container member functions -in full, and sometimes rely on distant wording that applies to all containers. -It would be easier if vector::erase referred back to -23.2.4 [sequence.reqmts]. -

    - - -

    Proposed resolution:

    -

    -

    - - - - -

    4175(i). get_env() specified in terms of as_const() but this doesn't work with rvalue senders

    Section: 33.5.2 [exec.get.allocator], 33.5.3 [exec.get.stop.token], 33.5.4 [exec.get.env], 33.5.5 [exec.get.domain], 33.5.6 [exec.get.scheduler], 33.5.7 [exec.get.delegation.scheduler], 33.5.8 [exec.get.fwd.progress], 33.5.9 [exec.get.compl.sched] Status: New @@ -64129,5 +64094,40 @@

    41754176(i). Refer back to container requirements when extending them

    +

    Section: 23 [containers] Status: New + Submitter: Jonathan Wakely Opened: 2024-11-22 Last modified: 2024-11-25

    +

    Priority: Not Prioritized +

    +

    View other active issues in [containers].

    +

    View all other issues in [containers].

    +

    View all issues with New status.

    +

    Discussion:

    +

    +We sometimes give detailed specifications of container members which add +additional specification to the common requirements in +23.2.2 [container.requirements.general], for example +23.3.11.5 [vector.modifiers] defines vector::erase without actually +saying it erases any elements. The actual effects of erase are given in +23.2.4 [sequence.reqmts]. +

    +

    +Authors of library wording often struggle with this non-local form of +specification, where we sometimes do spell out container member functions +in full, and sometimes rely on distant wording that applies to all containers. +It would be easier if vector::erase referred back to +23.2.4 [sequence.reqmts]. +

    + + +

    Proposed resolution:

    +

    +

    + + + + + diff --git a/unresolved-index.html b/unresolved-index.html index 8d4d2f2531..1a70f7bd97 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Section 3 (2 issues)

    (view only non-Ready open issues)

    Issue
    4174(i)4175(i) New23 [containers]Refer back to container requirements when extending themNo33.5.2 [exec.get.allocator]get_env() specified in terms of as_const() but this doesn't work with rvalue sendersYes
    4175(i)4176(i) New33.5.2 [exec.get.allocator]get_env() specified in terms of as_const() but this doesn't work with rvalue sendersYes23 [containers]Refer back to container requirements when extending themNo
    @@ -1835,7 +1835,7 @@

    Section 23 (57 issues)

    - + diff --git a/unresolved-prioritized.html b/unresolved-prioritized.html index 937c6350ce..b72494758f 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Priority 1 (2 issues)

    Duplicates
    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    @@ -4860,7 +4860,7 @@

    Not Prioritized (62 issues)

    - + diff --git a/unresolved-status-date.html b/unresolved-status-date.html index a140de6a2f..f73290521b 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    New (442 issues)

    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    @@ -80,7 +80,7 @@

    Index by Status and Date

    - + diff --git a/unresolved-status.html b/unresolved-status.html index ac57b2e7cc..037c5f374a 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    New (442 issues)

    Duplicates
    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    @@ -1403,7 +1403,7 @@

    Index by Status and Section

    - + diff --git a/unresolved-toc.html b/unresolved-toc.html index 73912075b5..59c6fa3eb4 100644 --- a/unresolved-toc.html +++ b/unresolved-toc.html @@ -59,7 +59,7 @@

    Table of Contents

    Reference ISO/IEC IS 14882:2024(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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    4174(i)4176(i) New 23 [containers] Refer back to container requirements when extending them
    @@ -5178,20 +5178,20 @@

    Table of Contents

    - + - - - + + + - + - - - + + + diff --git a/votable-index.html b/votable-index.html index 8508b5f092..fa7a7627d0 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Section 17 (2 issues)

    (view only non-Ready open issues)

    Issue
    4174(i)4175(i) New23 [containers]Refer back to container requirements when extending themNo33.5.2 [exec.get.allocator]get_env() specified in terms of as_const() but this doesn't work with rvalue sendersYes
    4175(i)4176(i) New33.5.2 [exec.get.allocator]get_env() specified in terms of as_const() but this doesn't work with rvalue sendersYes23 [containers]Refer back to container requirements when extending themNo
    diff --git a/votable-status-date.html b/votable-status-date.html index e39687a4d5..f2acb12656 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Voting (34 issues)

    diff --git a/votable-status.html b/votable-status.html index e39813fc5c..76ed4c4871 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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Voting (34 issues)

    diff --git a/votable-toc.html b/votable-toc.html index b90e350480..7ced9fc745 100644 --- a/votable-toc.html +++ b/votable-toc.html @@ -59,7 +59,7 @@

    Table of Contents

    Reference ISO/IEC IS 14882:2024(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-11-25 at 13:42:07 UTC +

    Revised 2024-11-25 at 14:50:55 UTC

    Issue