diff --git a/issue4174.html b/issue4174.html index 58a7b8c1a8..f4b5df6e23 100644 --- a/issue4174.html +++ b/issue4174.html @@ -2,8 +2,8 @@
-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.
-Section: 23 [containers] Status: New - Submitter: Jonathan Wakely Opened: 2024-11-22 Last modified: 2024-11-25
+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 +
++
+- +
[…]
- +
(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
+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 @@ + + + + +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.
+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 @@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 @@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:
--
- - - - -get_env()
specified in terms of as_const()
but this doesn't work with rvalue sendersSection: 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 @@
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 @@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 @@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 @@This document is the Index by Section for the Library Active Issues List.
Revised 2024-11-25 at 13:42:07 UTC +
Revised 2024-11-25 at 14:50:55 UTC
Duplicates | |||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4174(i) | +4176(i) | New | 23 [containers] | Refer back to container requirements when extending them | 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 @@
Duplicates | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4174(i) | +4176(i) | New | 23 [containers] | Refer back to container requirements when extending them | 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 @@|||||||||||||||||||||||||||||||
Date: | -Revised 2024-11-25 at 13:42:07 UTC + | Revised 2024-11-25 at 14:50:55 UTC | |||||||||||||||||||||||||||||||||
Duplicates | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4174(i) | +4176(i) | New | 23 [containers] | Refer back to container requirements when extending them | 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 @@
4174(i) | +4176(i) | New | 23 [containers] | Refer back to container requirements when extending them | 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 @@ -
Issue | @@ -33530,20 +33530,20 @@||||||||||
---|---|---|---|---|---|---|---|---|---|---|
4174(i) | +4175(i) | New | -23 [containers] | -Refer back to container requirements when extending them | -No | +33.5.2 [exec.get.allocator] | +get_env() specified in terms of as_const() but this doesn't work with rvalue senders |
+Yes | ||
4175(i) | +4176(i) | New | -33.5.2 [exec.get.allocator] | -get_env() specified in terms of as_const() but this doesn't work with rvalue senders |
-Yes | +23 [containers] | +Refer back to container requirements when extending them | +No |