diff --git a/reference/atomic/atomic/compare_exchange_strong.md b/reference/atomic/atomic/compare_exchange_strong.md index efc248a09a..f1beed8cb2 100644 --- a/reference/atomic/atomic/compare_exchange_strong.md +++ b/reference/atomic/atomic/compare_exchange_strong.md @@ -6,25 +6,42 @@ * cpp11[meta cpp] ```cpp -bool compare_exchange_strong(T& expected, - T desired, - memory_order success, - memory_order failure - ) volatile noexcept; // (1) C++11 -bool compare_exchange_strong(T& expected, - T desired, - memory_order success, - memory_order failure - ) noexcept; // (2) C++11 - -bool compare_exchange_strong(T& expected, - T desired, - memory_order order = memory_order_seq_cst - ) volatile noexcept; // (3) C++11 -bool compare_exchange_strong(T& expected, - T desired, - memory_order order = memory_order_seq_cst - ) noexcept; // (4) C++11 +bool + compare_exchange_strong(T& expected, + T desired, + memory_order success, + memory_order failure + ) volatile noexcept; // (1) C++11 + +bool + compare_exchange_strong(T& expected, + T desired, + memory_order success, + memory_order failure + ) noexcept; // (2) C++11 +constexpr bool + compare_exchange_strong(T& expected, + T desired, + memory_order success, + memory_order failure + ) noexcept; // (2) C++26 + +bool + compare_exchange_strong(T& expected, + T desired, + memory_order order = memory_order_seq_cst + ) volatile noexcept; // (3) C++11 + +bool + compare_exchange_strong(T& expected, + T desired, + memory_order order = memory_order_seq_cst + ) noexcept; // (4) C++11 +constexpr bool + compare_exchange_strong(T& expected, + T desired, + memory_order order = memory_order_seq_cst + ) noexcept; // (4) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -180,3 +197,5 @@ true - [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/) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/compare_exchange_weak.md b/reference/atomic/atomic/compare_exchange_weak.md index 68c4f23bb4..6ae981e4d9 100644 --- a/reference/atomic/atomic/compare_exchange_weak.md +++ b/reference/atomic/atomic/compare_exchange_weak.md @@ -6,25 +6,42 @@ * cpp11[meta cpp] ```cpp -bool compare_exchange_weak(T& expected, - T desired, - memory_order success, - memory_order failure - ) volatile noexcept; // (1) C++11 -bool compare_exchange_weak(T& expected, - T desired, - memory_order success, - memory_order failure - ) noexcept; // (2) C++11 - -bool compare_exchange_weak(T& expected, - T desired, - memory_order order = memory_order_seq_cst - ) volatile noexcept; // (3) C++11 -bool compare_exchange_weak(T& expected, - T desired, - memory_order order = memory_order_seq_cst - ) noexcept; // (4) C++11 +bool + compare_exchange_weak(T& expected, + T desired, + memory_order success, + memory_order failure + ) volatile noexcept; // (1) C++11 + +bool + compare_exchange_weak(T& expected, + T desired, + memory_order success, + memory_order failure + ) noexcept; // (2) C++11 +constexpr bool + compare_exchange_weak(T& expected, + T desired, + memory_order success, + memory_order failure + ) noexcept; // (2) C++26 + +bool + compare_exchange_weak(T& expected, + T desired, + memory_order order = memory_order_seq_cst + ) volatile noexcept; // (3) C++11 + +bool + compare_exchange_weak(T& expected, + T desired, + memory_order order = memory_order_seq_cst + ) noexcept; // (4) C++11 +constexpr bool + compare_exchange_weak(T& expected, + T desired, + memory_order order = memory_order_seq_cst + ) noexcept; // (4) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -205,3 +222,5 @@ int main() - [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/) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/exchange.md b/reference/atomic/atomic/exchange.md index ecad452c20..a0eb2da879 100644 --- a/reference/atomic/atomic/exchange.md +++ b/reference/atomic/atomic/exchange.md @@ -6,12 +6,19 @@ * cpp11[meta cpp] ```cpp -T exchange(T desired, +T + exchange(T desired, memory_order order = memory_order_seq_cst ) volatile noexcept; // (1) C++11 -T exchange(T desired, + +T + exchange(T desired, memory_order order = memory_order_seq_cst ) noexcept; // (2) C++11 +constexpr T + exchange(T desired, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -81,3 +88,5 @@ replaced 1 by 2 ## 参照 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/fetch_add.md b/reference/atomic/atomic/fetch_add.md index 950f569c97..b62930bbd0 100644 --- a/reference/atomic/atomic/fetch_add.md +++ b/reference/atomic/atomic/fetch_add.md @@ -6,12 +6,19 @@ * cpp11[meta cpp] ```cpp -T fetch_add(difference_type operand, +T + fetch_add(difference_type operand, memory_order order = memory_order_seq_cst ) volatile noexcept; // (1) C++11 -T fetch_add(difference_type operand, + +T + fetch_add(difference_type operand, memory_order order = memory_order_seq_cst ) noexcept; // (2) C++11 +constexpr T + fetch_add(difference_type operand, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -154,3 +161,5 @@ int main() - C++20での、浮動小数点数版の追加 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/fetch_and.md b/reference/atomic/atomic/fetch_and.md index 673aef1e40..8209763f8e 100644 --- a/reference/atomic/atomic/fetch_and.md +++ b/reference/atomic/atomic/fetch_and.md @@ -6,12 +6,19 @@ * cpp11[meta cpp] ```cpp -T fetch_and(T operand, +T + fetch_and(T operand, memory_order order = memory_order_seq_cst ) volatile noexcept; // (1) C++11 -T fetch_and(T operand, + +T + fetch_and(T operand, memory_order order = memory_order_seq_cst ) noexcept; // (2) C++11 +constexpr T + fetch_and(T operand, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -131,3 +138,5 @@ int main() - C++17での、オブジェクト型であることの制約追加 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/fetch_max.md b/reference/atomic/atomic/fetch_max.md index f4da609a65..117fb1640e 100644 --- a/reference/atomic/atomic/fetch_max.md +++ b/reference/atomic/atomic/fetch_max.md @@ -6,7 +6,8 @@ * cpp26[meta cpp] ```cpp -T fetch_max(difference_type operand, +constexpr T + fetch_max(difference_type operand, memory_order order = memory_order_seq_cst ) const noexcept; // (1) C++26 ``` @@ -70,3 +71,4 @@ int main() ## 参照 - [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) diff --git a/reference/atomic/atomic/fetch_min.md b/reference/atomic/atomic/fetch_min.md index 576ab3fcf1..e813120f4b 100644 --- a/reference/atomic/atomic/fetch_min.md +++ b/reference/atomic/atomic/fetch_min.md @@ -6,7 +6,8 @@ * cpp26[meta cpp] ```cpp -T fetch_min(difference_type operand, +constexpr T + fetch_min(difference_type operand, memory_order order = memory_order_seq_cst ) const noexcept; // (1) C++26 ``` @@ -70,3 +71,4 @@ int main() ## 参照 - [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) diff --git a/reference/atomic/atomic/fetch_or.md b/reference/atomic/atomic/fetch_or.md index 988ba029e9..9135670e25 100644 --- a/reference/atomic/atomic/fetch_or.md +++ b/reference/atomic/atomic/fetch_or.md @@ -6,12 +6,19 @@ * cpp11[meta cpp] ```cpp -T fetch_or(T operand, +T + fetch_or(T operand, memory_order order = memory_order_seq_cst ) volatile noexcept; // (1) C++11 -T fetch_or(T operand, + +T + fetch_or(T operand, memory_order order = memory_order_seq_cst ) noexcept; // (2) C++11 +constexpr T + fetch_or(T operand, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -131,3 +138,5 @@ int main() - C++17での、オブジェクト型であることの制約追加 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/fetch_sub.md b/reference/atomic/atomic/fetch_sub.md index 16f9bfc1ae..e81ec5c8d1 100644 --- a/reference/atomic/atomic/fetch_sub.md +++ b/reference/atomic/atomic/fetch_sub.md @@ -6,12 +6,19 @@ * cpp11[meta cpp] ```cpp -T fetch_sub(difference_type operand, +T + fetch_sub(difference_type operand, memory_order order = memory_order_seq_cst ) volatile noexcept; // (1) C++11 -T fetch_sub(difference_type operand, + +T + fetch_sub(difference_type operand, memory_order order = memory_order_seq_cst ) noexcept; // (2) C++11 +constexpr T + fetch_sub(difference_type operand, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -151,3 +158,5 @@ int main() - C++20での、浮動小数点数版の追加 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/fetch_xor.md b/reference/atomic/atomic/fetch_xor.md index f00b996bf8..40e99fff16 100644 --- a/reference/atomic/atomic/fetch_xor.md +++ b/reference/atomic/atomic/fetch_xor.md @@ -6,12 +6,19 @@ * cpp11[meta cpp] ```cpp -T fetch_xor(T operand, +T + fetch_xor(T operand, memory_order order = memory_order_seq_cst ) volatile noexcept; // (1) C++11 -T fetch_xor(T operand, + +T + fetch_xor(T operand, memory_order order = memory_order_seq_cst ) noexcept; // (2) C++11 +constexpr T + fetch_xor(T operand, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -133,3 +140,5 @@ int main() - C++17での、オブジェクト型であることの制約追加 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/load.md b/reference/atomic/atomic/load.md index 122d12e8a9..6d9c3db9f0 100644 --- a/reference/atomic/atomic/load.md +++ b/reference/atomic/atomic/load.md @@ -6,10 +6,16 @@ * cpp11[meta cpp] ```cpp -T load(memory_order order = memory_order_seq_cst +T + load(memory_order order = memory_order_seq_cst ) const volatile noexcept; // (1) C++11 -T load(memory_order order = memory_order_seq_cst + +T + load(memory_order order = memory_order_seq_cst ) const noexcept; // (2) C++11 +constexpr T + load(memory_order order = memory_order_seq_cst + ) const noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -82,3 +88,5 @@ int main() ## 参照 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/notify_all.md b/reference/atomic/atomic/notify_all.md index d861d0a2d3..53841c4106 100644 --- a/reference/atomic/atomic/notify_all.md +++ b/reference/atomic/atomic/notify_all.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -void notify_all() volatile noexcept; // (1) C++20 -void notify_all() noexcept; // (2) C++20 +void notify_all() volatile noexcept; // (1) C++20 + +void notify_all() noexcept; // (2) C++20 +constexpr void notify_all() noexcept; // (2) C++26 ``` ## 概要 @@ -91,3 +93,5 @@ int main() - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/notify_one.md b/reference/atomic/atomic/notify_one.md index 9cad212caa..70f306111f 100644 --- a/reference/atomic/atomic/notify_one.md +++ b/reference/atomic/atomic/notify_one.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -void notify_one() volatile noexcept; // (1) C++20 -void notify_one() noexcept; // (2) C++20 +void notify_one() volatile noexcept; // (1) C++20 + +void notify_one() noexcept; // (2) C++20 +constexpr void notify_one() noexcept; // (2) C++26 ``` ## 概要 @@ -117,3 +119,5 @@ int main() - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_and_assign.md b/reference/atomic/atomic/op_and_assign.md index 23312eab7c..530fdeb711 100644 --- a/reference/atomic/atomic/op_and_assign.md +++ b/reference/atomic/atomic/op_and_assign.md @@ -6,8 +6,10 @@ * cpp11[meta cpp] ```cpp -T operator&=(T operand) volatile noexcept; // (1) C++11 -T operator&=(T operand) noexcept; // (2) C++11 +T operator&=(T operand) volatile noexcept; // (1) C++11 + +T operator&=(T operand) noexcept; // (2) C++11 +constexpr T operator&=(T operand) noexcept; // (2) C++26 ``` ## 概要 @@ -123,3 +125,5 @@ int main() ## 参照 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_assign.md b/reference/atomic/atomic/op_assign.md index c5e2b19e9b..2d09579213 100644 --- a/reference/atomic/atomic/op_assign.md +++ b/reference/atomic/atomic/op_assign.md @@ -10,7 +10,9 @@ atomic& operator=(const atomic&) = delete; // (1) C++11 atomic& operator=(const atomic&) volatile = delete; // (2) C++11 T operator=(T desired) volatile noexcept; // (3) C++11 + T operator=(T desired) noexcept; // (4) C++11 +constexpr T operator=(T desired) noexcept; // (4) C++26 ``` ## 概要 @@ -77,3 +79,5 @@ int main() ## 参照 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_decrement.md b/reference/atomic/atomic/op_decrement.md index 9073ba75f3..3db4228cf6 100644 --- a/reference/atomic/atomic/op_decrement.md +++ b/reference/atomic/atomic/op_decrement.md @@ -6,17 +6,19 @@ * cpp11[meta cpp] ```cpp -T operator--() volatile noexcept; // (1) C++11 -value_type operator--() volatile noexcept; // (1) C++20 +T operator--() volatile noexcept; // (1) C++11 +value_type operator--() volatile noexcept; // (1) C++20 -T operator--() noexcept; // (2) C++11 -value_type operator--() noexcept; // (2) C++20 +T operator--() noexcept; // (2) C++11 +value_type operator--() noexcept; // (2) C++20 +constexpr value_type operator--() noexcept; // (2) C++26 -T operator--(int) volatile noexcept; // (3) C++11 -value_type operator--(int) volatile noexcept; // (3) C++20 +T operator--(int) volatile noexcept; // (3) C++11 +value_type operator--(int) volatile noexcept; // (3) C++20 -T operator--(int) noexcept; // (4) C++11 -value_type operator--(int) noexcept; // (4) C++20 +T operator--(int) noexcept; // (4) C++11 +value_type operator--(int) noexcept; // (4) C++20 +constexpr value_type operator--(int) noexcept; // (4) C++26 ``` ## 概要 @@ -123,3 +125,5 @@ int main() - C++20での、`volatile`版への制約追加 - [P1960R0 NB Comment Changes Reviewed by SG1](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1960r0.html) - 戻り値の型を`T`から`value_type`に変更 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_increment.md b/reference/atomic/atomic/op_increment.md index 683ee6e013..cb75999fc7 100644 --- a/reference/atomic/atomic/op_increment.md +++ b/reference/atomic/atomic/op_increment.md @@ -6,17 +6,19 @@ * cpp11[meta cpp] ```cpp -T operator++() volatile noexcept; // (1) C++11 -value_type operator++() volatile noexcept; // (1) C++20 +T operator++() volatile noexcept; // (1) C++11 +value_type operator++() volatile noexcept; // (1) C++20 -T operator++() noexcept; // (2) C++11 -value_type operator++() noexcept; // (2) C++20 +T operator++() noexcept; // (2) C++11 +value_type operator++() noexcept; // (2) C++20 +constexpr value_type operator++() noexcept; // (2) C++26 -T operator++(int) volatile noexcept; // (3) C++11 -value_type operator++(int) volatile noexcept; // (3) C++20 +T operator++(int) volatile noexcept; // (3) C++11 +value_type operator++(int) volatile noexcept; // (3) C++20 -T operator++(int) noexcept; // (4) C++11 -value_type operator++(int) noexcept; // (4) C++20 +T operator++(int) noexcept; // (4) C++11 +value_type operator++(int) noexcept; // (4) C++20 +constexpr value_type operator++(int) noexcept; // (4) C++26 ``` ## 概要 @@ -126,3 +128,5 @@ int main() - C++20での、`volatile`版への制約追加 - [P1960R0 NB Comment Changes Reviewed by SG1](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1960r0.html) - 戻り値の型を`T`から`value_type`に変更 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_minus_assign.md b/reference/atomic/atomic/op_minus_assign.md index 097d5d2c93..837f70a1eb 100644 --- a/reference/atomic/atomic/op_minus_assign.md +++ b/reference/atomic/atomic/op_minus_assign.md @@ -6,8 +6,10 @@ * cpp11[meta cpp] ```cpp -T operator-=(T operand) volatile noexcept; // (1) C++11 -T operator-=(T operand) noexcept; // (2) C++11 +T operator-=(T operand) volatile noexcept; // (1) C++11 + +T operator-=(T operand) noexcept; // (2) C++11 +constexpr T operator-=(T operand) noexcept; // (2) C++26 ``` ## 概要 @@ -144,3 +146,5 @@ int main() - C++20での、浮動小数点数版の追加 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_or_assign.md b/reference/atomic/atomic/op_or_assign.md index 4f63f0972c..d06db19227 100644 --- a/reference/atomic/atomic/op_or_assign.md +++ b/reference/atomic/atomic/op_or_assign.md @@ -6,8 +6,10 @@ * cpp11[meta cpp] ```cpp -T operator|=(T operand) volatile noexcept; // (1) C++11 -T operator|=(T operand) noexcept; // (2) C++11 +T operator|=(T operand) volatile noexcept; // (1) C++11 + +T operator|=(T operand) noexcept; // (2) C++11 +constexpr T operator|=(T operand) noexcept; // (2) C++26 ``` ## 概要 @@ -124,3 +126,5 @@ int main() ## 参照 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_plus_assign.md b/reference/atomic/atomic/op_plus_assign.md index b8f5b235d7..e397edc549 100644 --- a/reference/atomic/atomic/op_plus_assign.md +++ b/reference/atomic/atomic/op_plus_assign.md @@ -6,8 +6,10 @@ * cpp11[meta cpp] ```cpp -T operator+=(T operand) volatile noexcept; // (1) C++11 -T operator+=(T operand) noexcept; // (2) C++11 +T operator+=(T operand) volatile noexcept; // (1) C++11 + +T operator+=(T operand) noexcept; // (2) C++11 +constexpr T operator+=(T operand) noexcept; // (2) C++26 ``` ## 概要 @@ -142,3 +144,5 @@ int main() - C++20での、浮動小数点数版の追加 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_t.md b/reference/atomic/atomic/op_t.md index d642b30d47..cf76ea75a9 100644 --- a/reference/atomic/atomic/op_t.md +++ b/reference/atomic/atomic/op_t.md @@ -6,8 +6,10 @@ * cpp11[meta cpp] ```cpp -operator T() const volatile noexcept; // (1) C++11 -operator T() const noexcept; // (2) C++11 +operator T() const volatile noexcept; // (1) C++11 + +operator T() const noexcept; // (2) C++11 +constexpr operator T() const noexcept; // (2) C++26 ``` ## 概要 @@ -66,3 +68,5 @@ int main() - [N2514 Implicit Conversion Operators for Atomics](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2514.html) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/op_xor_assign.md b/reference/atomic/atomic/op_xor_assign.md index c27ab068f5..bb350f8986 100644 --- a/reference/atomic/atomic/op_xor_assign.md +++ b/reference/atomic/atomic/op_xor_assign.md @@ -6,8 +6,10 @@ * cpp11[meta cpp] ```cpp -T operator^=(T operand) volatile noexcept; // (1) C++11 -T operator^=(T operand) noexcept; // (2) C++11 +T operator^=(T operand) volatile noexcept; // (1) C++11 + +T operator^=(T operand) noexcept; // (2) C++11 +constexpr T operator^=(T operand) noexcept; // (2) C++26 ``` ## 概要 @@ -126,3 +128,5 @@ int main() ## 参照 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/store.md b/reference/atomic/atomic/store.md index 43fb105efb..da13dfc8d9 100644 --- a/reference/atomic/atomic/store.md +++ b/reference/atomic/atomic/store.md @@ -6,12 +6,19 @@ * cpp11[meta cpp] ```cpp -void store(T desired, - memory_order order = memory_order_seq_cst - ) volatile noexcept; // (1) C++11 -void store(T desired, - memory_order order = memory_order_seq_cst - ) noexcept; // (2) C++11 +void + store(T desired, + memory_order order = memory_order_seq_cst + ) volatile noexcept; // (1) C++11 + +void + store(T desired, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++11 +constexpr void + store(T desired, + memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -87,3 +94,5 @@ int main() ## 参照 - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic/wait.md b/reference/atomic/atomic/wait.md index d940060c39..226c45d3b4 100644 --- a/reference/atomic/atomic/wait.md +++ b/reference/atomic/atomic/wait.md @@ -6,12 +6,19 @@ * cpp20[meta cpp] ```cpp -void wait(T old, - memory_order order = memory_order::seq_cst - ) const volatile noexcept; // (1) C++20 -void wait(T old, - memory_order order = memory_order::seq_cst - ) const noexcept; // (2) C++20 +void + wait(T old, + memory_order order = memory_order::seq_cst + ) const volatile noexcept; // (1) C++20 + +void + wait(T old, + memory_order order = memory_order::seq_cst + ) const noexcept; // (2) C++20 +constexpr void + wait(T old, + memory_order order = memory_order::seq_cst + ) const noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] @@ -132,3 +139,5 @@ int main() - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_compare_exchange_strong.md b/reference/atomic/atomic_compare_exchange_strong.md index 7cecd9045b..bb1a04ab0c 100644 --- a/reference/atomic/atomic_compare_exchange_strong.md +++ b/reference/atomic/atomic_compare_exchange_strong.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - bool atomic_compare_exchange_strong( + bool + atomic_compare_exchange_strong( volatile atomic* object, T* expected, T desired) noexcept; // (1) C++11 - template - bool atomic_compare_exchange_strong( + bool + atomic_compare_exchange_strong( volatile atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired) noexcept; // (1) C++17 template - bool atomic_compare_exchange_strong( + bool + atomic_compare_exchange_strong( atomic* object, T* expected, T desired) noexcept; // (2) C++11 - template - bool atomic_compare_exchange_strong( + bool + atomic_compare_exchange_strong( atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired) noexcept; // (2) C++17 + template + constexpr bool + atomic_compare_exchange_strong( + atomic* object, + typename atomic::value_type* expected, + typename atomic::value_type desired) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -129,3 +137,5 @@ false 3 3 - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_compare_exchange_strong_explicit.md b/reference/atomic/atomic_compare_exchange_strong_explicit.md index f1f4885f36..cd22b992a4 100644 --- a/reference/atomic/atomic_compare_exchange_strong_explicit.md +++ b/reference/atomic/atomic_compare_exchange_strong_explicit.md @@ -7,15 +7,16 @@ ```cpp namespace std { template - bool atomic_compare_exchange_strong_explicit( + bool + atomic_compare_exchange_strong_explicit( volatile atomic* object, T* expected, T desired, memory_order success, memory_order failure) noexcept; // (1) C++11 - template - bool atomic_compare_exchange_strong_explicit( + bool + atomic_compare_exchange_strong_explicit( volatile atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired, @@ -23,15 +24,24 @@ namespace std { memory_order failure) noexcept; // (1) C++17 template - bool atomic_compare_exchange_strong_explicit( + bool + atomic_compare_exchange_strong_explicit( atomic* object, T* expected, T desired, memory_order success, memory_order failure) noexcept; // (2) C++11 - template - bool atomic_compare_exchange_strong_explicit( + bool + atomic_compare_exchange_strong_explicit( + atomic* object, + typename atomic::value_type* expected, + typename atomic::value_type desired, + memory_order success, + memory_order failure) noexcept; // (2) C++17 + template + constexpr bool + atomic_compare_exchange_strong_explicit( atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired, @@ -149,3 +159,5 @@ false 3 3 - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_compare_exchange_weak.md b/reference/atomic/atomic_compare_exchange_weak.md index 87e0629a95..2e55ec151e 100644 --- a/reference/atomic/atomic_compare_exchange_weak.md +++ b/reference/atomic/atomic_compare_exchange_weak.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - bool atomic_compare_exchange_weak( + bool + atomic_compare_exchange_weak( volatile atomic* object, T* expected, T desired) noexcept; // (1) C++11 - template - bool atomic_compare_exchange_weak( + bool + atomic_compare_exchange_weak( volatile atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired) noexcept; // (1) C++17 template - bool atomic_compare_exchange_weak( + bool + atomic_compare_exchange_weak( atomic* object, T* expected, T desired) noexcept; // (2) C++11 - template - bool atomic_compare_exchange_weak( + bool + atomic_compare_exchange_weak( atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired) noexcept; // (2) C++17 + template + constexpr bool + atomic_compare_exchange_weak( + atomic* object, + typename atomic::value_type* expected, + typename atomic::value_type desired) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -133,3 +141,5 @@ false 3 3 - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_compare_exchange_weak_explicit.md b/reference/atomic/atomic_compare_exchange_weak_explicit.md index 397bb63923..6c2274c3bd 100644 --- a/reference/atomic/atomic_compare_exchange_weak_explicit.md +++ b/reference/atomic/atomic_compare_exchange_weak_explicit.md @@ -7,15 +7,16 @@ ```cpp namespace std { template - bool atomic_compare_exchange_weak_explicit( + bool + atomic_compare_exchange_weak_explicit( volatile atomic* object, T* expected, T desired, memory_order success, memory_order failure) noexcept; // (1) C++11 - template - bool atomic_compare_exchange_weak_explicit( + bool + atomic_compare_exchange_weak_explicit( volatile atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired, @@ -23,20 +24,29 @@ namespace std { memory_order failure) noexcept; // (1) C++17 template - bool atomic_compare_exchange_weak_explicit( + bool + atomic_compare_exchange_weak_explicit( atomic* object, T* expected, T desired, memory_order success, memory_order failure) noexcept; // (2) C++11 - template - bool atomic_compare_exchange_weak_explicit( + bool + atomic_compare_exchange_weak_explicit( atomic* object, typename atomic::value_type* expected, typename atomic::value_type desired, memory_order success, memory_order failure) noexcept; // (2) C++17 + template + constexpr bool + atomic_compare_exchange_weak_explicit( + atomic* object, + typename atomic::value_type* expected, + typename atomic::value_type desired, + memory_order success, + memory_order failure) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -151,3 +161,5 @@ false 3 3 - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_exchange.md b/reference/atomic/atomic_exchange.md index 7fa78f8f43..7c303880ba 100644 --- a/reference/atomic/atomic_exchange.md +++ b/reference/atomic/atomic_exchange.md @@ -7,24 +7,31 @@ ```cpp namespace std { template - T atomic_exchange( + T + atomic_exchange( volatile atomic* object, T desired) noexcept; // (1) C++11 - template - T atomic_exchange( + T + atomic_exchange( volatile atomic* object, typename atomic::value_type desired) noexcept; // (1) C++17 template - T atomic_exchange( + T + atomic_exchange( atomic* object, T desired) noexcept; // (2) C++11 - template - T atomic_exchange( + T + atomic_exchange( atomic* object, typename atomic::value_type desired) noexcept; // (2) C++17 + template + constexpr T + atomic_exchange( + atomic* object, + typename atomic::value_type desired) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -99,3 +106,5 @@ replaced 1 by 2 - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_exchange_explicit.md b/reference/atomic/atomic_exchange_explicit.md index 42ce1048bf..eecc353831 100644 --- a/reference/atomic/atomic_exchange_explicit.md +++ b/reference/atomic/atomic_exchange_explicit.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - T atomic_exchange_explicit( + T + atomic_exchange_explicit( volatile atomic* object, T desired, memory_order order) noexcept; // (1) C++11 - template - T atomic_exchange_explicit( + T + atomic_exchange_explicit( volatile atomic* object, typename atomic::value_type desired, memory_order order) noexcept; // (1) C++17 template - T atomic_exchange_explicit( + T + atomic_exchange_explicit( atomic* object, T desired, memory_order order) noexcept; // (2) C++11 - template - T atomic_exchange_explicit( + T + atomic_exchange_explicit( atomic* object, typename atomic::value_type desired, memory_order order) noexcept; // (2) C++17 + template + constexpr T + atomic_exchange_explicit( + atomic* object, + typename atomic::value_type desired, + memory_order order) noexcept; // (2) C++26 ] ``` * atomic[link atomic.md] @@ -105,3 +113,5 @@ replaced 1 by 2 - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_add.md b/reference/atomic/atomic_fetch_add.md index 54d691e9f9..87b5a3547d 100644 --- a/reference/atomic/atomic_fetch_add.md +++ b/reference/atomic/atomic_fetch_add.md @@ -7,22 +7,29 @@ ```cpp namespace std { template - T atomic_fetch_add( + T + atomic_fetch_add( volatile atomic* object, T operand) noexcept; // (1) C++11 - template - T atomic_fetch_add( + T + atomic_fetch_add( volatile atomic* object, typename atomic::difference_type operand) noexcept; // (1) C++17 template - T atomic_fetch_add( + T + atomic_fetch_add( atomic* object, T operand) noexcept; // (2) C++11 - template - T atomic_fetch_add( + T + atomic_fetch_add( + atomic* object, + typename atomic::difference_type operand) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_add( atomic* object, typename atomic::difference_type operand) noexcept; // (2) C++17 } @@ -102,3 +109,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_add_explicit.md b/reference/atomic/atomic_fetch_add_explicit.md index 6559e86cc5..086b4c99bd 100644 --- a/reference/atomic/atomic_fetch_add_explicit.md +++ b/reference/atomic/atomic_fetch_add_explicit.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - T atomic_fetch_add_explicit( + T + atomic_fetch_add_explicit( volatile atomic* object, T operand, memory_order order) noexcept; // (1) C++11 - template - T atomic_fetch_add_explicit( + T + atomic_fetch_add_explicit( volatile atomic* object, typename atomic::difference_type operand, memory_order order) noexcept; // (1) C++17 template - T atomic_fetch_add_explicit( + T + atomic_fetch_add_explicit( atomic* object, T operand, memory_order order) noexcept; // (2) C++11 - template - T atomic_fetch_add_explicit( + T + atomic_fetch_add_explicit( atomic* object, typename atomic::difference_type operand, memory_order order) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_add_explicit( + atomic* object, + typename atomic::difference_type operand, + memory_order order) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -105,3 +113,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_and.md b/reference/atomic/atomic_fetch_and.md index a1464a21f8..154262e798 100644 --- a/reference/atomic/atomic_fetch_and.md +++ b/reference/atomic/atomic_fetch_and.md @@ -7,24 +7,31 @@ ```cpp namespace std { template - T atomic_fetch_and( + T + atomic_fetch_and( volatile atomic* object, T operand) noexcept; // (1) C++11 - template - T atomic_fetch_and( + T + atomic_fetch_and( volatile atomic* object, typename atomic::value_type operand) noexcept; // (1) C++17 template - T atomic_fetch_and( + T + atomic_fetch_and( atomic* object, T operand) noexcept; // (2) C++11 - template - T atomic_fetch_and( + T + atomic_fetch_and( atomic* object, typename atomic::value_type operand) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_and( + atomic* object, + typename atomic::value_type operand) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -108,3 +115,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_and_explicit.md b/reference/atomic/atomic_fetch_and_explicit.md index 1cf4be6d1d..f989b07c2c 100644 --- a/reference/atomic/atomic_fetch_and_explicit.md +++ b/reference/atomic/atomic_fetch_and_explicit.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - T atomic_fetch_and_explicit( + T + atomic_fetch_and_explicit( volatile atomic* object, T operand, memory_order order) noexcept; // (1) C++11 - template - T atomic_fetch_and_explicit( + T + atomic_fetch_and_explicit( volatile atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (1) C++17 template - T atomic_fetch_and_explicit( + T + atomic_fetch_and_explicit( atomic* object, T operand, memory_order order) noexcept; // (2) C++11 - template - T atomic_fetch_and_explicit( + T + atomic_fetch_and_explicit( atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_and_explicit( + atomic* object, + typename atomic::value_type operand, + memory_order order) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -113,3 +121,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_max.md b/reference/atomic/atomic_fetch_max.md index 72fcef80de..b8cb690835 100644 --- a/reference/atomic/atomic_fetch_max.md +++ b/reference/atomic/atomic_fetch_max.md @@ -7,11 +7,13 @@ ```cpp namespace std { template - T atomic_fetch_max(volatile atomic* object, + T + atomic_fetch_max(volatile atomic* object, typename atomic::value_type operand) noexcept; // (1) C++26 template - T atomic_fetch_max(atomic* object, + constexpr T + atomic_fetch_max(atomic* object, typename atomic::value_type operand) noexcept; // (2) C++26 } ``` @@ -69,3 +71,4 @@ int main() ## 参照 - [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) diff --git a/reference/atomic/atomic_fetch_max_explicit.md b/reference/atomic/atomic_fetch_max_explicit.md index 17c2259b8b..0e088ba8aa 100644 --- a/reference/atomic/atomic_fetch_max_explicit.md +++ b/reference/atomic/atomic_fetch_max_explicit.md @@ -7,13 +7,15 @@ ```cpp namespace std { template - T atomic_fetch_max_explicit( + T + atomic_fetch_max_explicit( volatile atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (1) C++26 template - T atomic_fetch_max_explicit( + constexpr T + atomic_fetch_max_explicit( atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (2) C++26 @@ -71,3 +73,4 @@ int main() ## 参照 - [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) diff --git a/reference/atomic/atomic_fetch_min.md b/reference/atomic/atomic_fetch_min.md index 69e4a164a8..26763e2a6c 100644 --- a/reference/atomic/atomic_fetch_min.md +++ b/reference/atomic/atomic_fetch_min.md @@ -7,11 +7,13 @@ ```cpp namespace std { template - T atomic_fetch_min(volatile atomic* object, + T + atomic_fetch_min(volatile atomic* object, typename atomic::value_type operand) noexcept; // (1) C++26 template - T atomic_fetch_min(atomic* object, + constexpr T + atomic_fetch_min(atomic* object, typename atomic::value_type operand) noexcept; // (2) C++26 } ``` @@ -69,3 +71,4 @@ int main() ## 参照 - [P0493R5 Atomic maximum/minimum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) diff --git a/reference/atomic/atomic_fetch_min_explicit.md b/reference/atomic/atomic_fetch_min_explicit.md index cac364da71..dd46f1a0c1 100644 --- a/reference/atomic/atomic_fetch_min_explicit.md +++ b/reference/atomic/atomic_fetch_min_explicit.md @@ -7,13 +7,15 @@ ```cpp namespace std { template - T atomic_fetch_min_explicit( + T + atomic_fetch_min_explicit( volatile atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (1) C++26 template - T atomic_fetch_min_explicit( + constexpr T + atomic_fetch_min_explicit( atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (2) C++26 @@ -71,3 +73,4 @@ int main() ## 参照 - [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) diff --git a/reference/atomic/atomic_fetch_or.md b/reference/atomic/atomic_fetch_or.md index 90a49db9f5..09e06a976a 100644 --- a/reference/atomic/atomic_fetch_or.md +++ b/reference/atomic/atomic_fetch_or.md @@ -7,24 +7,31 @@ ```cpp namespace std { template - T atomic_fetch_or( + T + atomic_fetch_or( volatile atomic* object, T operand) noexcept; // (1) C++11 - template - T atomic_fetch_or( + T + atomic_fetch_or( volatile atomic* object, typename atomic::value_type operand) noexcept; // (1) C++17 template - T atomic_fetch_or( + T + atomic_fetch_or( atomic* object, T operand) noexcept; // (2) C++11 - template - T atomic_fetch_or( + T + atomic_fetch_or( atomic* object, typename atomic::value_type operand) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_or( + atomic* object, + typename atomic::value_type operand) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -108,3 +115,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_or_explicit.md b/reference/atomic/atomic_fetch_or_explicit.md index 1cb3276243..65b5e52a56 100644 --- a/reference/atomic/atomic_fetch_or_explicit.md +++ b/reference/atomic/atomic_fetch_or_explicit.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - T atomic_fetch_or_explicit( + T + atomic_fetch_or_explicit( volatile atomic* object, T operand, memory_order order) noexcept; // (1) C++11 - template - T atomic_fetch_or_explicit( + T + atomic_fetch_or_explicit( volatile atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (1) C++17 template - T atomic_fetch_or_explicit( + T + atomic_fetch_or_explicit( atomic* object, T operand, memory_order order) noexcept; // (2) C++11 - template - T atomic_fetch_or_explicit( + T + atomic_fetch_or_explicit( atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_or_explicit( + atomic* object, + typename atomic::value_type operand, + memory_order order) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -112,3 +120,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_sub.md b/reference/atomic/atomic_fetch_sub.md index 79b2a6cd39..8e3989fa48 100644 --- a/reference/atomic/atomic_fetch_sub.md +++ b/reference/atomic/atomic_fetch_sub.md @@ -7,24 +7,31 @@ ```cpp namespace std { template - T atomic_fetch_sub( + T + atomic_fetch_sub( volatile atomic* object, T operand) noexcept; // (1) C++11 - template - T atomic_fetch_sub( + T + atomic_fetch_sub( volatile atomic* object, typename atomic::difference_type operand) noexcept; // (1) C++17 template - T atomic_fetch_sub( + T + atomic_fetch_sub( atomic* object, T operand) noexcept; // (2) C++11 - template - T atomic_fetch_sub( + T + atomic_fetch_sub( atomic* object, typename atomic::difference_type operand) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_sub( + atomic* object, + typename atomic::difference_type operand) noexcept; // (2) C++26 } ``` * atomic[link /reference/atomic/atomic.md] @@ -101,3 +108,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_sub_explicit.md b/reference/atomic/atomic_fetch_sub_explicit.md index 12227f39b9..5e29e2ebf6 100644 --- a/reference/atomic/atomic_fetch_sub_explicit.md +++ b/reference/atomic/atomic_fetch_sub_explicit.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - T atomic_fetch_sub_explicit( + T + atomic_fetch_sub_explicit( volatile atomic* object, T operand, memory_order order) noexcept; // (1) C++11 - template - T atomic_fetch_sub_explicit( + T + atomic_fetch_sub_explicit( volatile atomic* object, typename atomic::difference_type operand, memory_order order) noexcept; // (1) C++17 template - T atomic_fetch_sub_explicit( + T + atomic_fetch_sub_explicit( atomic* object, T operand, memory_order order) noexcept; // (2) C++11 - template - T atomic_fetch_sub_explicit( + T + atomic_fetch_sub_explicit( atomic* object, typename atomic::difference_type operand, memory_order order) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_sub_explicit( + atomic* object, + typename atomic::difference_type operand, + memory_order order) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -106,3 +114,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_xor.md b/reference/atomic/atomic_fetch_xor.md index 21e2fdbaa0..c4558983a5 100644 --- a/reference/atomic/atomic_fetch_xor.md +++ b/reference/atomic/atomic_fetch_xor.md @@ -7,24 +7,31 @@ ```cpp namespace std { template - T atomic_fetch_xor( + T + atomic_fetch_xor( volatile atomic* object, T operand) noexcept; // (1) C++11 - template - T atomic_fetch_xor( + T + atomic_fetch_xor( volatile atomic* object, typename atomic::value_type operand) noexcept; // (1) C++17 template - T atomic_fetch_xor( + T + atomic_fetch_xor( atomic* object, T operand) noexcept; // (2) C++11 - template - T atomic_fetch_xor( + T + atomic_fetch_xor( atomic* object, typename atomic::value_type operand) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_xor( + atomic* object, + typename atomic::value_type operand) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -108,3 +115,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_fetch_xor_explicit.md b/reference/atomic/atomic_fetch_xor_explicit.md index a92960f978..a7f98893ba 100644 --- a/reference/atomic/atomic_fetch_xor_explicit.md +++ b/reference/atomic/atomic_fetch_xor_explicit.md @@ -7,28 +7,36 @@ ```cpp namespace std { template - T atomic_fetch_xor_explicit( + T + atomic_fetch_xor_explicit( volatile atomic* object, T operand, memory_order order) noexcept; // (1) C++11 - template - T atomic_fetch_xor_explicit( + T + atomic_fetch_xor_explicit( volatile atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (1) C++17 template - T atomic_fetch_xor_explicit( + T + atomic_fetch_xor_explicit( atomic* object, T operand, memory_order order) noexcept; // (2) C++11 - template - T atomic_fetch_xor_explicit( + T + atomic_fetch_xor_explicit( atomic* object, typename atomic::value_type operand, memory_order order) noexcept; // (2) C++17 + template + constexpr T + atomic_fetch_xor_explicit( + atomic* object, + typename atomic::value_type operand, + memory_order order) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -114,3 +122,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag/clear.md b/reference/atomic/atomic_flag/clear.md index cfed6ae7ad..e8294272e8 100644 --- a/reference/atomic/atomic_flag/clear.md +++ b/reference/atomic/atomic_flag/clear.md @@ -6,8 +6,16 @@ * cpp11[meta cpp] ```cpp -void clear(memory_order order = memory_order_seq_cst) volatile noexcept; -void clear(memory_order order = memory_order_seq_cst) noexcept; +void + clear(memory_order order = memory_order_seq_cst + ) volatile noexcept; // (1) C++11 + +void + clear(memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++11 +constexpr void + clear(memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -87,5 +95,5 @@ false ## 参照 - [LWG Issue 2138. `atomic_flag::clear` should not accept `memory_order_consume`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2138) - - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag/notify_all.md b/reference/atomic/atomic_flag/notify_all.md index 051d0604a8..bdab9021d0 100644 --- a/reference/atomic/atomic_flag/notify_all.md +++ b/reference/atomic/atomic_flag/notify_all.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -void notify_all() volatile noexcept; -void notify_all() noexcept; +void notify_all() volatile noexcept; // (1) C++20 + +void notify_all() noexcept; // (2) C++20 +constexpr void notify_all() noexcept; // (2) C++26 ``` ## 概要 @@ -82,3 +84,5 @@ int main() - [P0514R4 Efficient concurrent waiting for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag/notify_one.md b/reference/atomic/atomic_flag/notify_one.md index aaa9458e4c..cfee53fec9 100644 --- a/reference/atomic/atomic_flag/notify_one.md +++ b/reference/atomic/atomic_flag/notify_one.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -void notify_one() volatile noexcept; -void notify_one() noexcept; +void notify_one() volatile noexcept; // (1) C++20 + +void notify_one() noexcept; // (2) C++20 +constexpr void notify_one() noexcept; // (2) C++26 ``` ## 概要 @@ -108,3 +110,5 @@ int main() - [P0514R4 Efficient concurrent waiting for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag/test.md b/reference/atomic/atomic_flag/test.md index 0004703d70..aef6fdd598 100644 --- a/reference/atomic/atomic_flag/test.md +++ b/reference/atomic/atomic_flag/test.md @@ -6,8 +6,16 @@ * cpp20[meta cpp] ```cpp -bool test(memory_order order = memory_order::seq_cst) const volatile noexcept; -bool test(memory_order order = memory_order::seq_cst) const noexcept; +bool + test(memory_order order = memory_order::seq_cst + ) const volatile noexcept; // (1) C++20 + +bool + test(memory_order order = memory_order::seq_cst + ) const noexcept; // (2) C++20 +constexpr bool + test(memory_order order = memory_order::seq_cst + ) const noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] @@ -77,3 +85,5 @@ true - [P0995R1 Improving atomic_flag](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0995r1.html) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag/test_and_set.md b/reference/atomic/atomic_flag/test_and_set.md index 7ac2cdd48d..681042e679 100644 --- a/reference/atomic/atomic_flag/test_and_set.md +++ b/reference/atomic/atomic_flag/test_and_set.md @@ -6,8 +6,16 @@ * cpp11[meta cpp] ```cpp -bool test_and_set(memory_order order = memory_order_seq_cst) volatile noexcept; -bool test_and_set(memory_order order = memory_order_seq_cst) noexcept; +bool + test_and_set(memory_order order = memory_order_seq_cst + ) volatile noexcept; // (1) C++11 + +bool + test_and_set(memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++11 +constexpr bool + test_and_set(memory_order order = memory_order_seq_cst + ) noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -73,5 +81,5 @@ true ## 参照 - - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag/wait.md b/reference/atomic/atomic_flag/wait.md index 4f8c1e35aa..6a28dc057e 100644 --- a/reference/atomic/atomic_flag/wait.md +++ b/reference/atomic/atomic_flag/wait.md @@ -6,8 +6,19 @@ * cpp20[meta cpp] ```cpp -void wait(bool old, memory_order order = memory_order::seq_cst) const volatile noexcept; -void wait(bool old, memory_order order = memory_order::seq_cst) const noexcept; +void + wait(bool old, + memory_order order = memory_order::seq_cst + ) const volatile noexcept; // (1) C++20 + +void + wait(bool old, + memory_order order = memory_order::seq_cst + ) const noexcept; // (2) C++20 +constexpr void + wait(bool old, + memory_order order = memory_order::seq_cst + ) const noexcept; // (2) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] @@ -119,3 +130,5 @@ int main() - [P0514R4 Efficient concurrent waiting for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_clear.md b/reference/atomic/atomic_flag_clear.md index 344ca7669d..bede0b52a8 100644 --- a/reference/atomic/atomic_flag_clear.md +++ b/reference/atomic/atomic_flag_clear.md @@ -6,8 +6,13 @@ ```cpp namespace std { - void atomic_flag_clear(volatile atomic_flag* object) noexcept; - void atomic_flag_clear(atomic_flag* object) noexcept; + void + atomic_flag_clear(volatile atomic_flag* object) noexcept; // (1) C++11 + + void + atomic_flag_clear(atomic_flag* object) noexcept; // (2) C++26 + constexpr void + atomic_flag_clear(atomic_flag* object) noexcept; // (2) C++26 } ``` * atomic_flag[link atomic_flag.md] @@ -79,5 +84,5 @@ false ## 参照 - - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_clear_explicit.md b/reference/atomic/atomic_flag_clear_explicit.md index cdc49ca536..380201c650 100644 --- a/reference/atomic/atomic_flag_clear_explicit.md +++ b/reference/atomic/atomic_flag_clear_explicit.md @@ -6,8 +6,19 @@ ```cpp namespace std { - void atomic_flag_clear_explicit(volatile atomic_flag* object, memory_order order) noexcept; - void atomic_flag_clear_explicit(atomic_flag* object, memory_order order) noexcept; + void + atomic_flag_clear_explicit( + volatile atomic_flag* object, + memory_order order) noexcept; // (1) C++11 + + void + atomic_flag_clear_explicit( + atomic_flag* object, + memory_order order) noexcept; // (2) C++11 + constexpr void + atomic_flag_clear_explicit( + atomic_flag* object, + memory_order order) noexcept; // (2) C++26 } ``` * atomic_flag[link atomic_flag.md] @@ -89,4 +100,5 @@ false ## 参照 - [LWG Issue 2138. `atomic_flag::clear` should not accept `memory_order_consume`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2138) - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_notify_all.md b/reference/atomic/atomic_flag_notify_all.md index 6b9a2b65b2..fd4ef52fa7 100644 --- a/reference/atomic/atomic_flag_notify_all.md +++ b/reference/atomic/atomic_flag_notify_all.md @@ -6,8 +6,16 @@ ```cpp namespace std { - void atomic_flag_notify_all(volatile atomic_flag* object) const noexcept; // (1) C++20 - void atomic_flag_notify_all(atomic_flag* object) const noexcept; // (2) C++20 + void + atomic_flag_notify_all( + volatile atomic_flag* object) const noexcept; // (1) C++20 + + void + atomic_flag_notify_all( + atomic_flag* object) const noexcept; // (2) C++20 + constexpr void + atomic_flag_notify_all( + atomic_flag* object) const noexcept; // (2) C++26 } ``` @@ -83,3 +91,5 @@ int main() - [P0514R4 Efficient concurrent waiting for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_notify_one.md b/reference/atomic/atomic_flag_notify_one.md index cb5fe17f72..ce15d28537 100644 --- a/reference/atomic/atomic_flag_notify_one.md +++ b/reference/atomic/atomic_flag_notify_one.md @@ -6,8 +6,16 @@ ```cpp namespace std { - void atomic_flag_notify_one(volatile atomic_flag* object) noexcept; // (1) C++20 - void atomic_flag_notify_one(atomic_flag* object) noexcept; // (2) C++20 + void + atomic_flag_notify_one( + volatile atomic_flag* object) noexcept; // (1) C++20 + + void + atomic_flag_notify_one( + atomic_flag* object) noexcept; // (2) C++20 + constexpr void + atomic_flag_notify_one( + atomic_flag* object) noexcept; // (2) C++26 } ``` @@ -109,3 +117,5 @@ int main() - [P0514R4 Efficient concurrent waiting for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_test.md b/reference/atomic/atomic_flag_test.md index 3973f5927e..fad333b8fc 100644 --- a/reference/atomic/atomic_flag_test.md +++ b/reference/atomic/atomic_flag_test.md @@ -6,8 +6,13 @@ ```cpp namespace std { - bool atomic_flag_test(const volatile atomic_flag* object) noexcept; // (1) C++20 - bool atomic_flag_test(const atomic_flag* object) noexcept; // (2) C++20 + bool + atomic_flag_test(const volatile atomic_flag* object) noexcept; // (1) C++20 + + bool + atomic_flag_test(const atomic_flag* object) noexcept; // (2) C++20 + constexpr bool + atomic_flag_test(const atomic_flag* object) noexcept; // (2) C++26 } ``` @@ -73,3 +78,5 @@ true - [P0995R1 Improving atomic_flag](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0995r1.html) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_test_and_set.md b/reference/atomic/atomic_flag_test_and_set.md index 20cf956371..fa23298c13 100644 --- a/reference/atomic/atomic_flag_test_and_set.md +++ b/reference/atomic/atomic_flag_test_and_set.md @@ -6,8 +6,13 @@ ```cpp namespace std { - bool atomic_flag_test_and_set(volatile atomic_flag* object) noexcept; - bool atomic_flag_test_and_set(atomic_flag* object) noexcept; + bool + atomic_flag_test_and_set(volatile atomic_flag* object) noexcept; // (1) C++11 + + bool + atomic_flag_test_and_set(atomic_flag* object) noexcept; // (2) C++11 + constexpr bool + atomic_flag_test_and_set(atomic_flag* object) noexcept; // (2) C++26 } ``` * atomic_flag[link atomic_flag.md] @@ -75,5 +80,5 @@ true ## 参照 - - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_test_and_set_explicit.md b/reference/atomic/atomic_flag_test_and_set_explicit.md index 2dcc48633b..bc919a1f2c 100644 --- a/reference/atomic/atomic_flag_test_and_set_explicit.md +++ b/reference/atomic/atomic_flag_test_and_set_explicit.md @@ -6,8 +6,19 @@ ```cpp namespace std { - bool atomic_flag_test_and_set_explicit(volatile atomic_flag* object, memory_order order) noexcept; - bool atomic_flag_test_and_set_explicit(atomic_flag* object, memory_order order) noexcept; + bool + atomic_flag_test_and_set_explicit( + volatile atomic_flag* object, + memory_order order) noexcept; // (1) C++11 + + bool + atomic_flag_test_and_set_explicit( + atomic_flag* object, + memory_order order) noexcept; // (2) C++11 + constexpr bool + atomic_flag_test_and_set_explicit( + atomic_flag* object, + memory_order order) noexcept; // (2) C++26 } ``` * atomic_flag[link atomic_flag.md] @@ -74,5 +85,5 @@ true ## 参照 - - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_test_explicit.md b/reference/atomic/atomic_flag_test_explicit.md index 3b260b077a..a03168008b 100644 --- a/reference/atomic/atomic_flag_test_explicit.md +++ b/reference/atomic/atomic_flag_test_explicit.md @@ -6,10 +6,16 @@ ```cpp namespace std { - bool atomic_flag_test_explicit(const volatile atomic_flag* object, - memory_order order) noexcept; // (1) C++20 - bool atomic_flag_test_explicit(const atomic_flag* object, - memory_order order) noexcept; // (2) C++20 + bool + atomic_flag_test_explicit(const volatile atomic_flag* object, + memory_order order) noexcept; // (1) C++20 + + bool + atomic_flag_test_explicit(const atomic_flag* object, + memory_order order) noexcept; // (2) C++20 + constexpr bool + atomic_flag_test_explicit(const atomic_flag* object, + memory_order order) noexcept; // (2) C++26 } ``` * memory_order[link /reference/atomic/memory_order.md] @@ -81,3 +87,5 @@ true - [P0995R1 Improving atomic_flag](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0995r1.html) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_wait.md b/reference/atomic/atomic_flag_wait.md index 2452edf275..2a360fc000 100644 --- a/reference/atomic/atomic_flag_wait.md +++ b/reference/atomic/atomic_flag_wait.md @@ -6,8 +6,19 @@ ```cpp namespace std { - void atomic_flag_wait(const volatile atomic_flag* object, bool old) noexcept; // (1) C++20 - void atomic_flag_wait(const atomic_flag* object, bool old) noexcept; // (2) C++20 + void + atomic_flag_wait( + const volatile atomic_flag* object, + bool old) noexcept; // (1) C++20 + + void + atomic_flag_wait( + const atomic_flag* object, + bool old) noexcept; // (2) C++20 + constexpr void + atomic_flag_wait( + const atomic_flag* object, + bool old) noexcept; // (2) C++26 } ``` @@ -119,3 +130,5 @@ int main() - [P0514R4 Efficient concurrent waiting for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_flag_wait_explicit.md b/reference/atomic/atomic_flag_wait_explicit.md index 5908cb6505..4a27b046de 100644 --- a/reference/atomic/atomic_flag_wait_explicit.md +++ b/reference/atomic/atomic_flag_wait_explicit.md @@ -6,12 +6,22 @@ ```cpp namespace std { - void atomic_flag_wait_explicit(const volatile atomic_flag* object, - bool old, - memory_order order) noexcept; // (1) C++20 - void atomic_flag_wait_explicit(const atomic_flag* object, - bool old, - memory_order order) noexcept; // (2) C++20 + void + atomic_flag_wait_explicit( + const volatile atomic_flag* object, + bool old, + memory_order order) noexcept; // (1) C++20 + + void + atomic_flag_wait_explicit( + const atomic_flag* object, + bool old, + memory_order order) noexcept; // (2) C++20 + constexpr void + atomic_flag_wait_explicit( + const atomic_flag* object, + bool old, + memory_order order) noexcept; // (2) C++26 } ``` @@ -124,3 +134,5 @@ int main() - [P0514R4 Efficient concurrent waiting for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0514r4.pdf) - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_load.md b/reference/atomic/atomic_load.md index 3bb4becc2c..a0390c3a27 100644 --- a/reference/atomic/atomic_load.md +++ b/reference/atomic/atomic_load.md @@ -7,10 +7,15 @@ ```cpp namespace std { template - T atomic_load(const volatile atomic* object) noexcept; // (1) C++11 + T + atomic_load(const volatile atomic* object) noexcept; // (1) C++11 template - T atomic_load(const atomic* object) noexcept; // (2) C++11 + T + atomic_load(const atomic* object) noexcept; // (2) C++11 + template + constexpr T + atomic_load(const atomic* object) noexcept; // (2) C++26 } ``` * atomic[link /reference/atomic/atomic.md] @@ -84,3 +89,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_load_explicit.md b/reference/atomic/atomic_load_explicit.md index 45a0d084c2..135852abc0 100644 --- a/reference/atomic/atomic_load_explicit.md +++ b/reference/atomic/atomic_load_explicit.md @@ -7,14 +7,21 @@ ```cpp namespace std { template - T atomic_load_explicit( + T + atomic_load_explicit( const volatile atomic* object, memory_order order) noexcept; // (1) C++11 template - T atomic_load_explicit( + T + atomic_load_explicit( const atomic* object, memory_order order) noexcept; // (2) C++11 + template + constexpr T + atomic_load_explicit( + const atomic* object, + memory_order order) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -90,3 +97,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_notify_all.md b/reference/atomic/atomic_notify_all.md index d06922820c..0215d5421b 100644 --- a/reference/atomic/atomic_notify_all.md +++ b/reference/atomic/atomic_notify_all.md @@ -7,10 +7,15 @@ ```cpp namespace std { template - void atomic_notify_all(volatile atomic* object); // (1) C++20 + void + atomic_notify_all(volatile atomic* object); // (1) C++20 template - void atomic_notify_all(atomic* object); // (2) C++20 + void + atomic_notify_all(atomic* object); // (2) C++20 + template + constexpr void + atomic_notify_all(atomic* object); // (2) C++26 } ``` @@ -95,3 +100,5 @@ int main() - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_notify_one.md b/reference/atomic/atomic_notify_one.md index 49fee229ef..cbfd876d1b 100644 --- a/reference/atomic/atomic_notify_one.md +++ b/reference/atomic/atomic_notify_one.md @@ -7,10 +7,15 @@ ```cpp namespace std { template - void atomic_notify_one(volatile atomic* object); // (1) C++20 + void + atomic_notify_one(volatile atomic* object); // (1) C++20 template - void atomic_notify_one(atomic* object); // (2) C++20 + void + atomic_notify_one(atomic* object); // (2) C++20 + template + constexpr void + atomic_notify_one(atomic* object); // (2) C++26 } ``` @@ -121,3 +126,5 @@ int main() - [P1135R6 The C++20 Synchronization Library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1135r6.html) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/compare_exchange_strong.md b/reference/atomic/atomic_ref/compare_exchange_strong.md index e128bf2a8d..572dbd12b9 100644 --- a/reference/atomic/atomic_ref/compare_exchange_strong.md +++ b/reference/atomic/atomic_ref/compare_exchange_strong.md @@ -12,7 +12,7 @@ bool memory_order success, memory_order failure ) const noexcept; // (1) C++20 -bool +constexpr bool compare_exchange_strong(value_type& expected, value_type desired, memory_order success, @@ -24,7 +24,7 @@ bool T desired, memory_order order = memory_order_seq_cst ) const noexcept; // (2) C++20 -bool +constexpr bool compare_exchange_strong(value_type& expected, value_type desired, memory_order order = memory_order_seq_cst @@ -174,3 +174,5 @@ true ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/compare_exchange_weak.md b/reference/atomic/atomic_ref/compare_exchange_weak.md index 51c6f84ad7..3b92958ab4 100644 --- a/reference/atomic/atomic_ref/compare_exchange_weak.md +++ b/reference/atomic/atomic_ref/compare_exchange_weak.md @@ -12,7 +12,7 @@ bool memory_order success, memory_order failure ) const noexcept; // (1) C++20 -bool +constexpr bool compare_exchange_weak(value_type& expected, value_type desired, memory_order success, @@ -24,7 +24,7 @@ bool T desired, memory_order order = memory_order_seq_cst ) const noexcept; // (2) C++20 -bool +constexpr bool compare_exchange_weak(value_type& expected, value_type desired, memory_order order = memory_order_seq_cst @@ -204,3 +204,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/exchange.md b/reference/atomic/atomic_ref/exchange.md index c604462cb5..4c3bc9a7d7 100644 --- a/reference/atomic/atomic_ref/exchange.md +++ b/reference/atomic/atomic_ref/exchange.md @@ -9,7 +9,7 @@ T exchange(T desired, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -value_type +constexpr value_type exchange(value_type desired, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` @@ -73,3 +73,5 @@ replaced 1 by 2 ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/fetch_add.md b/reference/atomic/atomic_ref/fetch_add.md index 34baa1f68b..f1cbbe7981 100644 --- a/reference/atomic/atomic_ref/fetch_add.md +++ b/reference/atomic/atomic_ref/fetch_add.md @@ -9,7 +9,7 @@ T fetch_add(difference_type operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -value_type +constexpr value_type fetch_add(difference_type operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` @@ -144,3 +144,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/fetch_and.md b/reference/atomic/atomic_ref/fetch_and.md index 18abb329b2..2264df9271 100644 --- a/reference/atomic/atomic_ref/fetch_and.md +++ b/reference/atomic/atomic_ref/fetch_and.md @@ -9,7 +9,7 @@ T fetch_and(T operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -value_type +constexpr value_type fetch_and(value_type operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` @@ -114,3 +114,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/fetch_max.md b/reference/atomic/atomic_ref/fetch_max.md index eac81830ba..ab4bc9350e 100644 --- a/reference/atomic/atomic_ref/fetch_max.md +++ b/reference/atomic/atomic_ref/fetch_max.md @@ -6,7 +6,8 @@ * cpp26[meta cpp] ```cpp -T fetch_max(difference_type operand, +constexpr T + fetch_max(difference_type operand, memory_order order = memory_order_seq_cst ) const noexcept; // (1) C++26 ``` @@ -69,3 +70,4 @@ int main() ## 参照 - [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) diff --git a/reference/atomic/atomic_ref/fetch_min.md b/reference/atomic/atomic_ref/fetch_min.md index 4beac43818..b4fd996f92 100644 --- a/reference/atomic/atomic_ref/fetch_min.md +++ b/reference/atomic/atomic_ref/fetch_min.md @@ -6,7 +6,8 @@ * cpp26[meta cpp] ```cpp -T fetch_min(difference_type operand, +constexpr T + fetch_min(difference_type operand, memory_order order = memory_order_seq_cst ) const noexcept; // (1) C++26 ``` @@ -69,3 +70,5 @@ int main() ## 参照 - [P0493R5 Atomic minimum/maximum](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0493r5.pdf) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + diff --git a/reference/atomic/atomic_ref/fetch_or.md b/reference/atomic/atomic_ref/fetch_or.md index 95c27b4e80..195aa94ed4 100644 --- a/reference/atomic/atomic_ref/fetch_or.md +++ b/reference/atomic/atomic_ref/fetch_or.md @@ -9,7 +9,7 @@ T fetch_or(T operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -value_type +constexpr value_type fetch_or(value_type operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` @@ -114,3 +114,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/fetch_sub.md b/reference/atomic/atomic_ref/fetch_sub.md index 2c26bd65b2..35a0c59bc7 100644 --- a/reference/atomic/atomic_ref/fetch_sub.md +++ b/reference/atomic/atomic_ref/fetch_sub.md @@ -9,7 +9,7 @@ T fetch_sub(difference_type operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -value_type +constexpr value_type fetch_sub(difference_type operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` @@ -139,3 +139,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/fetch_xor.md b/reference/atomic/atomic_ref/fetch_xor.md index 4b1a3ad019..13e2b16002 100644 --- a/reference/atomic/atomic_ref/fetch_xor.md +++ b/reference/atomic/atomic_ref/fetch_xor.md @@ -9,7 +9,7 @@ T fetch_xor(T operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -value_type +constexpr value_type fetch_xor(value_type operand, memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` @@ -116,3 +116,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/load.md b/reference/atomic/atomic_ref/load.md index 908c730943..f41bf7d6aa 100644 --- a/reference/atomic/atomic_ref/load.md +++ b/reference/atomic/atomic_ref/load.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -T load(memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -value_type load(memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 +T + load(memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 +constexpr value_type + load(memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -76,3 +78,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/notify_all.md b/reference/atomic/atomic_ref/notify_all.md index d4d439e449..64feab6415 100644 --- a/reference/atomic/atomic_ref/notify_all.md +++ b/reference/atomic/atomic_ref/notify_all.md @@ -6,7 +6,8 @@ * cpp20[meta cpp] ```cpp -void notify_all() const noexcept; +void notify_all() const noexcept; // (1) C++20 +constexpr void notify_all() const noexcept; // (1) C++20 ``` ## 概要 @@ -89,3 +90,5 @@ int main() - 宣言に`const`を追加 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/notify_one.md b/reference/atomic/atomic_ref/notify_one.md index 2737886ee6..c12935ea1f 100644 --- a/reference/atomic/atomic_ref/notify_one.md +++ b/reference/atomic/atomic_ref/notify_one.md @@ -6,7 +6,8 @@ * cpp20[meta cpp] ```cpp -void notify_one() const noexcept; +void notify_one() const noexcept; // (1) C++20 +constexpr void notify_one() const noexcept; // (1) C++26 ``` ## 概要 @@ -116,3 +117,5 @@ int main() - 宣言に`const`を追加 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_and_assign.md b/reference/atomic/atomic_ref/op_and_assign.md index 3da3120144..8a2537050c 100644 --- a/reference/atomic/atomic_ref/op_and_assign.md +++ b/reference/atomic/atomic_ref/op_and_assign.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -T operator&=(T operand) const noexcept; // (1) C++20 -value_type operator&=(value_type operand) const noexcept; // (1) C++26 +T + operator&=(T operand) const noexcept; // (1) C++20 +constexpr value_type + operator&=(value_type operand) const noexcept; // (1) C++26 ``` ## 概要 @@ -106,3 +108,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_assign.md b/reference/atomic/atomic_ref/op_assign.md index dbe5d5c105..d91ff0ac5b 100644 --- a/reference/atomic/atomic_ref/op_assign.md +++ b/reference/atomic/atomic_ref/op_assign.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -T operator=(T desired) const noexcept; // (1) C++20 -value_type operator=(value_type desired) const noexcept; // (1) C++26 +T + operator=(T desired) const noexcept; // (1) C++20 +constexpr value_type + operator=(value_type desired) const noexcept; // (1) C++26 ``` ## 概要 @@ -75,3 +77,5 @@ int main() - 宣言に`const`を追加 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_constructor.md b/reference/atomic/atomic_ref/op_constructor.md index 7f3d704424..3821a7ac23 100644 --- a/reference/atomic/atomic_ref/op_constructor.md +++ b/reference/atomic/atomic_ref/op_constructor.md @@ -6,8 +6,11 @@ * cpp20[meta cpp] ```cpp -explicit atomic_ref(T& obj); // (1) C++20 -atomic_ref(const atomic_ref& other) noexcept; // (2) C++20 +explicit atomic_ref(T& obj); // (1) C++20 +constexpr explicit atomic_ref(T& obj); // (1) C++26 + +atomic_ref(const atomic_ref& other) noexcept; // (2) C++20 +constexpr atomic_ref(const atomic_ref& other) noexcept; // (2) C++26 ``` ## 概要 @@ -64,3 +67,5 @@ int main() ## 参照 - [LWG issue 3160. `atomic_ref() = delete;` should be deleted](https://wg21.cmeerw.net/lwg/issue3160) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_decrement.md b/reference/atomic/atomic_ref/op_decrement.md index 6554c4771c..4c1e6a80d6 100644 --- a/reference/atomic/atomic_ref/op_decrement.md +++ b/reference/atomic/atomic_ref/op_decrement.md @@ -6,8 +6,15 @@ * cpp20[meta cpp] ```cpp -value_type operator--() const noexcept; -value_type operator--(int) const noexcept; +value_type + operator--() const noexcept; // (1) C++20 +constexpr value_type + operator--() const noexcept; // (1) C++26 + +value_type + operator--(int) const noexcept; // (2) C++20 +constexpr value_type + operator--(int) const noexcept; // (2) C++26 ``` ## 概要 @@ -106,3 +113,5 @@ int main() - 戻り値の型を`T`から`value_type`に変更 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_increment.md b/reference/atomic/atomic_ref/op_increment.md index d870ebb252..ba657a4283 100644 --- a/reference/atomic/atomic_ref/op_increment.md +++ b/reference/atomic/atomic_ref/op_increment.md @@ -6,8 +6,15 @@ * cpp20[meta cpp] ```cpp -value_type operator++() const noexcept; // (1) C++20 -value_type operator++(int) const noexcept; // (2) C++20 +value_type + operator++() const noexcept; // (1) C++20 +constexpr value_type + operator++() const noexcept; // (1) C++26 + +value_type + operator++(int) const noexcept; // (2) C++20 +constexpr value_type + operator++(int) const noexcept; // (2) C++26 ``` ## 概要 @@ -108,3 +115,5 @@ int main() - 戻り値の型を`T`から`value_type`に変更 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_minus_assign.md b/reference/atomic/atomic_ref/op_minus_assign.md index 3811861b89..eb05e3b4b1 100644 --- a/reference/atomic/atomic_ref/op_minus_assign.md +++ b/reference/atomic/atomic_ref/op_minus_assign.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -T operator-=(T operand) const noexcept; // (1) C++20 -value_type operator-=(value_type operand) const noexcept; // (1) C++26 +T + operator-=(T operand) const noexcept; // (1) C++20 +constexpr value_type + operator-=(value_type operand) const noexcept; // (1) C++26 ``` ## 概要 @@ -133,3 +135,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_or_assign.md b/reference/atomic/atomic_ref/op_or_assign.md index 20f5be116a..18ca0d1286 100644 --- a/reference/atomic/atomic_ref/op_or_assign.md +++ b/reference/atomic/atomic_ref/op_or_assign.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -T operator|=(T operand) const noexcept; // (1) C++20 -value_type operator|=(value_type operand) const noexcept; // (1) C++26 +T + operator|=(T operand) const noexcept; // (1) C++20 +constexpr value_type + operator|=(value_type operand) const noexcept; // (1) C++26 ``` ## 概要 @@ -107,3 +109,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_plus_assign.md b/reference/atomic/atomic_ref/op_plus_assign.md index 44a48256e3..2b4cb59e24 100644 --- a/reference/atomic/atomic_ref/op_plus_assign.md +++ b/reference/atomic/atomic_ref/op_plus_assign.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -T operator+=(T operand) const noexcept; // (1) C++20 -value_type operator+=(value_type operand) const noexcept; // (1) C++26 +T + operator+=(T operand) const noexcept; // (1) C++20 +constexpr value_type + operator+=(value_type operand) const noexcept; // (1) C++26 ``` ## 概要 @@ -132,3 +134,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_value_type.md b/reference/atomic/atomic_ref/op_value_type.md index f2fa124bed..37845899db 100644 --- a/reference/atomic/atomic_ref/op_value_type.md +++ b/reference/atomic/atomic_ref/op_value_type.md @@ -6,7 +6,7 @@ * cpp26[meta cpp] ```cpp -operator value_type() const noexcept; +constexpr operator value_type() const noexcept; // (1) C++26 ``` ## 概要 @@ -59,3 +59,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/op_xor_assign.md b/reference/atomic/atomic_ref/op_xor_assign.md index 4e0e2f47d4..b8cf139476 100644 --- a/reference/atomic/atomic_ref/op_xor_assign.md +++ b/reference/atomic/atomic_ref/op_xor_assign.md @@ -6,8 +6,10 @@ * cpp20[meta cpp] ```cpp -T operator^=(T operand) const noexcept; // (1) C++20 -value_type operator^=(value_type operand) const noexcept; // (1) C++26 +T + operator^=(T operand) const noexcept; // (1) C++20 +constexpr value_type + operator^=(value_type operand) const noexcept; // (1) C++26 ``` ## 概要 @@ -103,3 +105,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/store.md b/reference/atomic/atomic_ref/store.md index 696c7eaa2f..1e73ac4a7c 100644 --- a/reference/atomic/atomic_ref/store.md +++ b/reference/atomic/atomic_ref/store.md @@ -6,10 +6,12 @@ * cpp20[meta cpp] ```cpp -void store(T desired, - memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 -void store(value_type desired, - memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 +void + store(T desired, + memory_order order = memory_order_seq_cst) const noexcept; // (1) C++20 +constexpr void + store(value_type desired, + memory_order order = memory_order_seq_cst) const noexcept; // (1) C++26 ``` * memory_order[link /reference/atomic/memory_order.md] * memory_order_seq_cst[link /reference/atomic/memory_order.md] @@ -84,3 +86,5 @@ int main() ## 参照 - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_ref/wait.md b/reference/atomic/atomic_ref/wait.md index 13e7203b65..58f146c89b 100644 --- a/reference/atomic/atomic_ref/wait.md +++ b/reference/atomic/atomic_ref/wait.md @@ -9,7 +9,7 @@ void wait(T old, memory_order order = memory_order::seq_cst) const noexcept; // (1) C++20 -void +constexpr void wait(value_type old, memory_order order = memory_order::seq_cst) const noexcept; // (1) C++26 ``` @@ -134,3 +134,5 @@ int main() - [P1643R1 Add wait/notify to `atomic_ref`](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1643r1.html) - [P3323R1 cv-qualified types in `atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3323r1.html) - C++26でCV修飾されたテンプレート引数を受け取れるようになった +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_signal_fence.md b/reference/atomic/atomic_signal_fence.md index 70e79afc81..00974d700c 100644 --- a/reference/atomic/atomic_signal_fence.md +++ b/reference/atomic/atomic_signal_fence.md @@ -6,7 +6,12 @@ ```cpp namespace std { - extern "C" void atomic_signal_fence(memory_order order) noexcept; + extern "C" + void + atomic_signal_fence(memory_order order) noexcept; // (1) C++11 + extern "C" + constexpr void + atomic_signal_fence(memory_order order) noexcept; // (1) C++26 } ``` * memory_order[link memory_order.md] @@ -50,5 +55,6 @@ namespace std { ## 参照 -[How to correctly use std::atomic_signal_fence()?](http://stackoverflow.com/questions/14581090/how-to-correctly-use-stdatomic-signal-fence) - +- [How to correctly use std::atomic_signal_fence()?](http://stackoverflow.com/questions/14581090/how-to-correctly-use-stdatomic-signal-fence) +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_store.md b/reference/atomic/atomic_store.md index ce97d33c72..7793a8b4f6 100644 --- a/reference/atomic/atomic_store.md +++ b/reference/atomic/atomic_store.md @@ -7,20 +7,26 @@ ```cpp namespace std { template - void atomic_store(volatile atomic* object, - T desired) noexcept; // (1) C++11 - + void + atomic_store(volatile atomic* object, + T desired) noexcept; // (1) C++11 template - void atomic_store(volatile atomic* object, - typename atomic::value_type desired) noexcept; // (1) C++17 + void + atomic_store(volatile atomic* object, + typename atomic::value_type desired) noexcept; // (1) C++17 template - void atomic_store(atomic* object, - T desired) noexcept; // (2) C++11 - + void + atomic_store(atomic* object, + T desired) noexcept; // (2) C++11 + template + void + atomic_store(atomic* object, + typename atomic::value_type desired) noexcept; // (2) C++17 template - void atomic_store(atomic* object, - typename atomic::value_type desired) noexcept; // (2) C++17 + constexpr void + atomic_store(atomic* object, + typename atomic::value_type desired) noexcept; // (2) C++26 } ``` * atomic[link /reference/atomic/atomic.md] @@ -96,3 +102,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_store_explicit.md b/reference/atomic/atomic_store_explicit.md index 742052570b..c97de61c17 100644 --- a/reference/atomic/atomic_store_explicit.md +++ b/reference/atomic/atomic_store_explicit.md @@ -7,28 +7,37 @@ ```cpp namespace std { template - void atomic_store_explicit( + void + atomic_store_explicit( volatile atomic* object, T desired, memory_order order) noexcept; // (1) C++11 - template - void atomic_store_explicit( + void + atomic_store_explicit( volatile atomic* object, typename atomic::value_type desired, memory_order order) noexcept; // (1) C++17 template - void atomic_store_explicit( + void + atomic_store_explicit( atomic* object, T desired, memory_order order) noexcept; // (2) C++11 template - void atomic_store_explicit( + void + atomic_store_explicit( atomic* object, typename atomic::value_type desired, memory_order order) noexcept; // (2) C++17 + template + constexpr void + atomic_store_explicit( + atomic* object, + typename atomic::value_type desired, + memory_order order) noexcept; // (2) C++26 } ``` * atomic[link atomic.md] @@ -105,3 +114,5 @@ int main() - [P0558R1 Resolving `atomic` named base class inconsistencies](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0558r1.pdf) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_thread_fence.md b/reference/atomic/atomic_thread_fence.md index a47bf3fab9..4ed4a0d775 100644 --- a/reference/atomic/atomic_thread_fence.md +++ b/reference/atomic/atomic_thread_fence.md @@ -6,7 +6,12 @@ ```cpp namespace std { - extern "C" void atomic_thread_fence(memory_order order) noexcept; + extern "C" + void + atomic_thread_fence(memory_order order) noexcept; // (1) C++11 + extern "C" + constexpr void + atomic_thread_fence(memory_order order) noexcept; // (1) C++26 } ``` * memory_order[link memory_order.md] @@ -142,4 +147,5 @@ int main() ## 参照 - [Implementing Dekker's algorithm with Fences](https://www.justsoftwaresolutions.co.uk/threading/implementing_dekkers_algorithm_with_fences.html) - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_wait.md b/reference/atomic/atomic_wait.md index 75f0080cb0..5a8f5996cd 100644 --- a/reference/atomic/atomic_wait.md +++ b/reference/atomic/atomic_wait.md @@ -7,12 +7,18 @@ ```cpp namespace std { template - void atomic_wait(const volatile atomic* object, - typename atomic::value_type old); // (1) C++20 + void + atomic_wait(const volatile atomic* object, + typename atomic::value_type old); // (1) C++20 template - void atomic_wait(const atomic* object, - typename atomic::value_type old); // (2) C++20 + void + atomic_wait(const atomic* object, + typename atomic::value_type old); // (2) C++20 + template + constexpr void + atomic_wait(const atomic* object, + typename atomic::value_type old); // (2) C++26 } ``` @@ -132,3 +138,5 @@ int main() - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/atomic_wait_explicit.md b/reference/atomic/atomic_wait_explicit.md index 07a84ebbff..1f273afa61 100644 --- a/reference/atomic/atomic_wait_explicit.md +++ b/reference/atomic/atomic_wait_explicit.md @@ -7,14 +7,21 @@ ```cpp namespace std { template - void atomic_wait(const volatile atomic* object, - typename atomic::value_type old, - memory_order order); // (1) C++20 + void + atomic_wait(const volatile atomic* object, + typename atomic::value_type old, + memory_order order); // (1) C++20 template - void atomic_wait(const atomic* object, - typename atomic::value_type old, - memory_order order); // (2) C++20 + void + atomic_wait(const atomic* object, + typename atomic::value_type old, + memory_order order); // (2) C++20 + template + constexpr void + atomic_wait(const atomic* object, + typename atomic::value_type old, + memory_order order); // (2) C++26 } ``` @@ -135,3 +142,5 @@ int main() - [ogiroux/atomic_wait - Sample implementation of C++20 atomic_wait/notify](https://github.com/ogiroux/atomic_wait) - [P1831R1 Deprecating `volatile`: library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1831r1.html) - C++20での、`volatile`版への制約追加 +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した diff --git a/reference/atomic/kill_dependency.md b/reference/atomic/kill_dependency.md index 75347c82a5..461a6a91d3 100644 --- a/reference/atomic/kill_dependency.md +++ b/reference/atomic/kill_dependency.md @@ -7,7 +7,9 @@ ```cpp namespace std { template - T kill_dependency(T y) noexcept; + T kill_dependency(T y) noexcept; // (1) C++11 + template + constexpr T kill_dependency(T y) noexcept; // (1) C++26 } ``` @@ -122,4 +124,5 @@ T kill_dependency(T y) noexcept - [What does `std::kill_dependency` do, and why would I want to use it? - StackOverflow](http://stackoverflow.com/q/7150395/463412) - [C++0xのメモリバリアをより深く解説してみる - yamasaのネタ帳](http://d.hatena.ne.jp/bsdhouse/20090929/1254237835) - [(抄訳)N4215 `memory_order_consume`の利用と実装に向けて[§5-6のみ]](http://d.hatena.ne.jp/yohhoy/20141115/p1) - +- [P3309R3 `constexpr atomic` and `atomic_ref`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3309r3.html) + - C++26で`constexpr`に対応した