Skip to content

Commit 4324757

Browse files
committed
atomic : C++26のconstexpr対応 (close #1391)
1 parent d440b08 commit 4324757

File tree

96 files changed

+974
-331
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+974
-331
lines changed

reference/atomic/atomic/compare_exchange_strong.md

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,42 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
bool compare_exchange_strong(T& expected,
10-
T desired,
11-
memory_order success,
12-
memory_order failure
13-
) volatile noexcept; // (1) C++11
14-
bool compare_exchange_strong(T& expected,
15-
T desired,
16-
memory_order success,
17-
memory_order failure
18-
) noexcept; // (2) C++11
19-
20-
bool compare_exchange_strong(T& expected,
21-
T desired,
22-
memory_order order = memory_order_seq_cst
23-
) volatile noexcept; // (3) C++11
24-
bool compare_exchange_strong(T& expected,
25-
T desired,
26-
memory_order order = memory_order_seq_cst
27-
) noexcept; // (4) C++11
9+
bool
10+
compare_exchange_strong(T& expected,
11+
T desired,
12+
memory_order success,
13+
memory_order failure
14+
) volatile noexcept; // (1) C++11
15+
16+
bool
17+
compare_exchange_strong(T& expected,
18+
T desired,
19+
memory_order success,
20+
memory_order failure
21+
) noexcept; // (2) C++11
22+
constexpr bool
23+
compare_exchange_strong(T& expected,
24+
T desired,
25+
memory_order success,
26+
memory_order failure
27+
) noexcept; // (2) C++26
28+
29+
bool
30+
compare_exchange_strong(T& expected,
31+
T desired,
32+
memory_order order = memory_order_seq_cst
33+
) volatile noexcept; // (3) C++11
34+
35+
bool
36+
compare_exchange_strong(T& expected,
37+
T desired,
38+
memory_order order = memory_order_seq_cst
39+
) noexcept; // (4) C++11
40+
constexpr bool
41+
compare_exchange_strong(T& expected,
42+
T desired,
43+
memory_order order = memory_order_seq_cst
44+
) noexcept; // (4) C++26
2845
```
2946
* memory_order[link /reference/atomic/memory_order.md]
3047
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -180,3 +197,5 @@ true
180197
- [Understand `std::atomic::compare_exchange_weak()` in C++11 - Eric Z's blog](https://tonywearme.wordpress.com/2014/08/15/understand-stdatomiccompare_exchange_weak-in-c11/)
181198
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
182199
- C++20での、`volatile`版への制約追加
200+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
201+
- C++26で`constexpr`に対応した

reference/atomic/atomic/compare_exchange_weak.md

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,42 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
bool compare_exchange_weak(T& expected,
10-
T desired,
11-
memory_order success,
12-
memory_order failure
13-
) volatile noexcept; // (1) C++11
14-
bool compare_exchange_weak(T& expected,
15-
T desired,
16-
memory_order success,
17-
memory_order failure
18-
) noexcept; // (2) C++11
19-
20-
bool compare_exchange_weak(T& expected,
21-
T desired,
22-
memory_order order = memory_order_seq_cst
23-
) volatile noexcept; // (3) C++11
24-
bool compare_exchange_weak(T& expected,
25-
T desired,
26-
memory_order order = memory_order_seq_cst
27-
) noexcept; // (4) C++11
9+
bool
10+
compare_exchange_weak(T& expected,
11+
T desired,
12+
memory_order success,
13+
memory_order failure
14+
) volatile noexcept; // (1) C++11
15+
16+
bool
17+
compare_exchange_weak(T& expected,
18+
T desired,
19+
memory_order success,
20+
memory_order failure
21+
) noexcept; // (2) C++11
22+
constexpr bool
23+
compare_exchange_weak(T& expected,
24+
T desired,
25+
memory_order success,
26+
memory_order failure
27+
) noexcept; // (2) C++26
28+
29+
bool
30+
compare_exchange_weak(T& expected,
31+
T desired,
32+
memory_order order = memory_order_seq_cst
33+
) volatile noexcept; // (3) C++11
34+
35+
bool
36+
compare_exchange_weak(T& expected,
37+
T desired,
38+
memory_order order = memory_order_seq_cst
39+
) noexcept; // (4) C++11
40+
constexpr bool
41+
compare_exchange_weak(T& expected,
42+
T desired,
43+
memory_order order = memory_order_seq_cst
44+
) noexcept; // (4) C++26
2845
```
2946
* memory_order[link /reference/atomic/memory_order.md]
3047
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -205,3 +222,5 @@ int main()
205222
- [Understand `std::atomic::compare_exchange_weak()` in C++11 - Eric Z's blog](https://tonywearme.wordpress.com/2014/08/15/understand-stdatomiccompare_exchange_weak-in-c11/)
206223
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
207224
- C++20での、`volatile`版への制約追加
225+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
226+
- C++26で`constexpr`に対応した

reference/atomic/atomic/exchange.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
T exchange(T desired,
9+
T
10+
exchange(T desired,
1011
memory_order order = memory_order_seq_cst
1112
) volatile noexcept; // (1) C++11
12-
T exchange(T desired,
13+
14+
T
15+
exchange(T desired,
1316
memory_order order = memory_order_seq_cst
1417
) noexcept; // (2) C++11
18+
constexpr T
19+
exchange(T desired,
20+
memory_order order = memory_order_seq_cst
21+
) noexcept; // (2) C++26
1522
```
1623
* memory_order[link /reference/atomic/memory_order.md]
1724
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -81,3 +88,5 @@ replaced 1 by 2
8188
## 参照
8289
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
8390
- C++20での、`volatile`版への制約追加
91+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
92+
- C++26で`constexpr`に対応した

reference/atomic/atomic/fetch_add.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
T fetch_add(difference_type operand,
9+
T
10+
fetch_add(difference_type operand,
1011
memory_order order = memory_order_seq_cst
1112
) volatile noexcept; // (1) C++11
12-
T fetch_add(difference_type operand,
13+
14+
T
15+
fetch_add(difference_type operand,
1316
memory_order order = memory_order_seq_cst
1417
) noexcept; // (2) C++11
18+
constexpr T
19+
fetch_add(difference_type operand,
20+
memory_order order = memory_order_seq_cst
21+
) noexcept; // (2) C++26
1522
```
1623
* memory_order[link /reference/atomic/memory_order.md]
1724
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -154,3 +161,5 @@ int main()
154161
- C++20での、浮動小数点数版の追加
155162
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
156163
- C++20での、`volatile`版への制約追加
164+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
165+
- C++26で`constexpr`に対応した

reference/atomic/atomic/fetch_and.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
T fetch_and(T operand,
9+
T
10+
fetch_and(T operand,
1011
memory_order order = memory_order_seq_cst
1112
) volatile noexcept; // (1) C++11
12-
T fetch_and(T operand,
13+
14+
T
15+
fetch_and(T operand,
1316
memory_order order = memory_order_seq_cst
1417
) noexcept; // (2) C++11
18+
constexpr T
19+
fetch_and(T operand,
20+
memory_order order = memory_order_seq_cst
21+
) noexcept; // (2) C++26
1522
```
1623
* memory_order[link /reference/atomic/memory_order.md]
1724
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -131,3 +138,5 @@ int main()
131138
- C++17での、オブジェクト型であることの制約追加
132139
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
133140
- C++20での、`volatile`版への制約追加
141+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
142+
- C++26で`constexpr`に対応した

reference/atomic/atomic/fetch_max.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* cpp26[meta cpp]
77

88
```cpp
9-
T fetch_max(difference_type operand,
9+
constexpr T
10+
fetch_max(difference_type operand,
1011
memory_order order = memory_order_seq_cst
1112
) const noexcept; // (1) C++26
1213
```
@@ -70,3 +71,4 @@ int main()
7071

7172
## 参照
7273
- [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf)
74+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)

reference/atomic/atomic/fetch_min.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* cpp26[meta cpp]
77

88
```cpp
9-
T fetch_min(difference_type operand,
9+
constexpr T
10+
fetch_min(difference_type operand,
1011
memory_order order = memory_order_seq_cst
1112
) const noexcept; // (1) C++26
1213
```
@@ -70,3 +71,4 @@ int main()
7071

7172
## 参照
7273
- [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf)
74+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)

reference/atomic/atomic/fetch_or.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
T fetch_or(T operand,
9+
T
10+
fetch_or(T operand,
1011
memory_order order = memory_order_seq_cst
1112
) volatile noexcept; // (1) C++11
12-
T fetch_or(T operand,
13+
14+
T
15+
fetch_or(T operand,
1316
memory_order order = memory_order_seq_cst
1417
) noexcept; // (2) C++11
18+
constexpr T
19+
fetch_or(T operand,
20+
memory_order order = memory_order_seq_cst
21+
) noexcept; // (2) C++26
1522
```
1623
* memory_order[link /reference/atomic/memory_order.md]
1724
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -131,3 +138,5 @@ int main()
131138
- C++17での、オブジェクト型であることの制約追加
132139
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
133140
- C++20での、`volatile`版への制約追加
141+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
142+
- C++26で`constexpr`に対応した

reference/atomic/atomic/fetch_sub.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
T fetch_sub(difference_type operand,
9+
T
10+
fetch_sub(difference_type operand,
1011
memory_order order = memory_order_seq_cst
1112
) volatile noexcept; // (1) C++11
12-
T fetch_sub(difference_type operand,
13+
14+
T
15+
fetch_sub(difference_type operand,
1316
memory_order order = memory_order_seq_cst
1417
) noexcept; // (2) C++11
18+
constexpr T
19+
fetch_sub(difference_type operand,
20+
memory_order order = memory_order_seq_cst
21+
) noexcept; // (2) C++26
1522
```
1623
* memory_order[link /reference/atomic/memory_order.md]
1724
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -151,3 +158,5 @@ int main()
151158
- C++20での、浮動小数点数版の追加
152159
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
153160
- C++20での、`volatile`版への制約追加
161+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
162+
- C++26で`constexpr`に対応した

reference/atomic/atomic/fetch_xor.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
* cpp11[meta cpp]
77

88
```cpp
9-
T fetch_xor(T operand,
9+
T
10+
fetch_xor(T operand,
1011
memory_order order = memory_order_seq_cst
1112
) volatile noexcept; // (1) C++11
12-
T fetch_xor(T operand,
13+
14+
T
15+
fetch_xor(T operand,
1316
memory_order order = memory_order_seq_cst
1417
) noexcept; // (2) C++11
18+
constexpr T
19+
fetch_xor(T operand,
20+
memory_order order = memory_order_seq_cst
21+
) noexcept; // (2) C++26
1522
```
1623
* memory_order[link /reference/atomic/memory_order.md]
1724
* memory_order_seq_cst[link /reference/atomic/memory_order.md]
@@ -133,3 +140,5 @@ int main()
133140
- C++17での、オブジェクト型であることの制約追加
134141
- [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html)
135142
- C++20での、`volatile`版への制約追加
143+
- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html)
144+
- C++26で`constexpr`に対応した

0 commit comments

Comments
 (0)