@@ -101,12 +101,12 @@ struct atomic
101
101
bool compare_exchange_strong(T& expc, T desr,
102
102
memory_order m = memory_order_seq_cst) noexcept;
103
103
104
- void wait(T, memory_order = memory_order::seq_cst) const volatile noexcept;
105
- void wait(T, memory_order = memory_order::seq_cst) const noexcept;
106
- void notify_one() volatile noexcept;
107
- void notify_one() noexcept;
108
- void notify_all() volatile noexcept;
109
- void notify_all() noexcept;
104
+ void wait(T, memory_order = memory_order::seq_cst) const volatile noexcept; // since C++20
105
+ void wait(T, memory_order = memory_order::seq_cst) const noexcept; // since C++20
106
+ void notify_one() volatile noexcept; // since C++20
107
+ void notify_one() noexcept; // since C++20
108
+ void notify_all() volatile noexcept; // since C++20
109
+ void notify_all() noexcept; // since C++20
110
110
};
111
111
112
112
template <>
@@ -184,12 +184,12 @@ struct atomic<integral>
184
184
integral operator^=(integral op) volatile noexcept;
185
185
integral operator^=(integral op) noexcept;
186
186
187
- void wait(integral, memory_order = memory_order::seq_cst) const volatile noexcept;
188
- void wait(integral, memory_order = memory_order::seq_cst) const noexcept;
189
- void notify_one() volatile noexcept;
190
- void notify_one() noexcept;
191
- void notify_all() volatile noexcept;
192
- void notify_all() noexcept;
187
+ void wait(integral, memory_order = memory_order::seq_cst) const volatile noexcept; // since C++20
188
+ void wait(integral, memory_order = memory_order::seq_cst) const noexcept; // since C++20
189
+ void notify_one() volatile noexcept; // since C++20
190
+ void notify_one() noexcept; // since C++20
191
+ void notify_all() volatile noexcept; // since C++20
192
+ void notify_all() noexcept; // since C++20
193
193
};
194
194
195
195
template <class T>
@@ -254,12 +254,12 @@ struct atomic<T*>
254
254
T* operator-=(ptrdiff_t op) volatile noexcept;
255
255
T* operator-=(ptrdiff_t op) noexcept;
256
256
257
- void wait(T*, memory_order = memory_order::seq_cst) const volatile noexcept;
258
- void wait(T*, memory_order = memory_order::seq_cst) const noexcept;
259
- void notify_one() volatile noexcept;
260
- void notify_one() noexcept;
261
- void notify_all() volatile noexcept;
262
- void notify_all() noexcept;
257
+ void wait(T*, memory_order = memory_order::seq_cst) const volatile noexcept; // since C++20
258
+ void wait(T*, memory_order = memory_order::seq_cst) const noexcept; // since C++20
259
+ void notify_one() volatile noexcept; // since C++20
260
+ void notify_one() noexcept; // since C++20
261
+ void notify_all() volatile noexcept; // since C++20
262
+ void notify_all() noexcept; // since C++20
263
263
};
264
264
265
265
template<>
@@ -321,12 +321,12 @@ struct atomic<floating-point-type> { // since C++20
321
321
floating-point-type operator-=(floating-point-type) volatile noexcept;
322
322
floating-point-type operator-=(floating-point-type) noexcept;
323
323
324
- void wait(floating-point-type, memory_order = memory_order::seq_cst) const volatile noexcept;
325
- void wait(floating-point-type, memory_order = memory_order::seq_cst) const noexcept;
326
- void notify_one() volatile noexcept;
327
- void notify_one() noexcept;
328
- void notify_all() volatile noexcept;
329
- void notify_all() noexcept;
324
+ void wait(floating-point-type, memory_order = memory_order::seq_cst) const volatile noexcept; // since C++20
325
+ void wait(floating-point-type, memory_order = memory_order::seq_cst) const noexcept; // since C++20
326
+ void notify_one() volatile noexcept; // since C++20
327
+ void notify_one() noexcept; // since C++20
328
+ void notify_all() volatile noexcept; // since C++20
329
+ void notify_all() noexcept; // since C++20
330
330
};
331
331
332
332
// [atomics.nonmembers], non-member functions
@@ -443,23 +443,23 @@ template<class T>
443
443
memory_order) noexcept;
444
444
445
445
template<class T>
446
- void atomic_wait(const volatile atomic<T>*, atomic<T>::value_type) noexcept;
446
+ void atomic_wait(const volatile atomic<T>*, atomic<T>::value_type) noexcept; // since C++20
447
447
template<class T>
448
- void atomic_wait(const atomic<T>*, atomic<T>::value_type) noexcept;
448
+ void atomic_wait(const atomic<T>*, atomic<T>::value_type) noexcept; // since C++20
449
449
template<class T>
450
- void atomic_wait_explicit(const volatile atomic<T>*, atomic<T>::value_type,
450
+ void atomic_wait_explicit(const volatile atomic<T>*, atomic<T>::value_type, // since C++20
451
451
memory_order) noexcept;
452
452
template<class T>
453
- void atomic_wait_explicit(const atomic<T>*, atomic<T>::value_type,
453
+ void atomic_wait_explicit(const atomic<T>*, atomic<T>::value_type, // since C++20
454
454
memory_order) noexcept;
455
455
template<class T>
456
- void atomic_notify_one(volatile atomic<T>*) noexcept;
456
+ void atomic_notify_one(volatile atomic<T>*) noexcept; // since C++20
457
457
template<class T>
458
- void atomic_notify_one(atomic<T>*) noexcept;
458
+ void atomic_notify_one(atomic<T>*) noexcept; // since C++20
459
459
template<class T>
460
- void atomic_notify_all(volatile atomic<T>*) noexcept;
460
+ void atomic_notify_all(volatile atomic<T>*) noexcept; // since C++20
461
461
template<class T>
462
- void atomic_notify_all(atomic<T>*) noexcept;
462
+ void atomic_notify_all(atomic<T>*) noexcept; // since C++20
463
463
464
464
// Atomics for standard typedef types
465
465
@@ -534,12 +534,12 @@ typedef struct atomic_flag
534
534
void clear(memory_order m = memory_order_seq_cst) volatile noexcept;
535
535
void clear(memory_order m = memory_order_seq_cst) noexcept;
536
536
537
- void wait(bool, memory_order = memory_order::seq_cst) const volatile noexcept;
538
- void wait(bool, memory_order = memory_order::seq_cst) const noexcept;
539
- void notify_one() volatile noexcept;
540
- void notify_one() noexcept;
541
- void notify_all() volatile noexcept;
542
- void notify_all() noexcept;
537
+ void wait(bool, memory_order = memory_order::seq_cst) const volatile noexcept; // since C++20
538
+ void wait(bool, memory_order = memory_order::seq_cst) const noexcept; // since C++20
539
+ void notify_one() volatile noexcept; // since C++20
540
+ void notify_one() noexcept; // since C++20
541
+ void notify_all() volatile noexcept; // since C++20
542
+ void notify_all() noexcept; // since C++20
543
543
} atomic_flag;
544
544
545
545
bool atomic_flag_test(volatile atomic_flag* obj) noexcept;
@@ -557,14 +557,14 @@ void atomic_flag_clear(atomic_flag* obj) noexcept;
557
557
void atomic_flag_clear_explicit(volatile atomic_flag* obj, memory_order m) noexcept;
558
558
void atomic_flag_clear_explicit(atomic_flag* obj, memory_order m) noexcept;
559
559
560
- void atomic_wait(const volatile atomic_flag* obj, T old) noexcept;
561
- void atomic_wait(const atomic_flag* obj, T old) noexcept;
562
- void atomic_wait_explicit(const volatile atomic_flag* obj, T old, memory_order m) noexcept;
563
- void atomic_wait_explicit(const atomic_flag* obj, T old, memory_order m) noexcept;
564
- void atomic_one(volatile atomic_flag* obj) noexcept;
565
- void atomic_one(atomic_flag* obj) noexcept;
566
- void atomic_all(volatile atomic_flag* obj) noexcept;
567
- void atomic_all(atomic_flag* obj) noexcept;
560
+ void atomic_wait(const volatile atomic_flag* obj, T old) noexcept; // since C++20
561
+ void atomic_wait(const atomic_flag* obj, T old) noexcept; // since C++20
562
+ void atomic_wait_explicit(const volatile atomic_flag* obj, T old, memory_order m) noexcept; // since C++20
563
+ void atomic_wait_explicit(const atomic_flag* obj, T old, memory_order m) noexcept; // since C++20
564
+ void atomic_one(volatile atomic_flag* obj) noexcept; // since C++20
565
+ void atomic_one(atomic_flag* obj) noexcept; // since C++20
566
+ void atomic_all(volatile atomic_flag* obj) noexcept; // since C++20
567
+ void atomic_all(atomic_flag* obj) noexcept; // since C++20
568
568
569
569
// fences
570
570
0 commit comments