Lines Matching refs:atomic
14 atomic synopsis
62 struct atomic
70 atomic() noexcept = default; // until C++20
71 constexpr atomic() noexcept(is_nothrow_default_constructible_v<T>); // since C++20
72 constexpr atomic(T desr) noexcept;
73 atomic(const atomic&) = delete;
74 atomic& operator=(const atomic&) = delete;
75 atomic& operator=(const atomic&) volatile = delete;
113 struct atomic<integral>
122 atomic() noexcept = default;
123 constexpr atomic(integral desr) noexcept;
124 atomic(const atomic&) = delete;
125 atomic& operator=(const atomic&) = delete;
126 atomic& operator=(const atomic&) volatile = delete;
196 struct atomic<T*>
205 atomic() noexcept = default; // until C++20
206 constexpr atomic() noexcept; // since C++20
207 constexpr atomic(T* desr) noexcept;
208 atomic(const atomic&) = delete;
209 atomic& operator=(const atomic&) = delete;
210 atomic& operator=(const atomic&) volatile = delete;
268 bool atomic_is_lock_free(const volatile atomic<T>*) noexcept;
270 bool atomic_is_lock_free(const atomic<T>*) noexcept;
272 void atomic_store(volatile atomic<T>*, atomic<T>::value_type) noexcept;
274 void atomic_store(atomic<T>*, atomic<T>::value_type) noexcept;
276 void atomic_store_explicit(volatile atomic<T>*, atomic<T>::value_type,
279 void atomic_store_explicit(atomic<T>*, atomic<T>::value_type,
282 T atomic_load(const volatile atomic<T>*) noexcept;
284 T atomic_load(const atomic<T>*) noexcept;
286 T atomic_load_explicit(const volatile atomic<T>*, memory_order) noexcept;
288 T atomic_load_explicit(const atomic<T>*, memory_order) noexcept;
290 T atomic_exchange(volatile atomic<T>*, atomic<T>::value_type) noexcept;
292 T atomic_exchange(atomic<T>*, atomic<T>::value_type) noexcept;
294 T atomic_exchange_explicit(volatile atomic<T>*, atomic<T>::value_type,
297 T atomic_exchange_explicit(atomic<T>*, atomic<T>::value_type,
300 bool atomic_compare_exchange_weak(volatile atomic<T>*, atomic<T>::value_type*,
301 atomic<T>::value_type) noexcept;
303 bool atomic_compare_exchange_weak(atomic<T>*, atomic<T>::value_type*,
304 atomic<T>::value_type) noexcept;
306 bool atomic_compare_exchange_strong(volatile atomic<T>*, atomic<T>::value_type*,
307 atomic<T>::value_type) noexcept;
309 bool atomic_compare_exchange_strong(atomic<T>*, atomic<T>::value_type*,
310 atomic<T>::value_type) noexcept;
312 bool atomic_compare_exchange_weak_explicit(volatile atomic<T>*, atomic<T>::value_type*,
313 atomic<T>::value_type,
316 bool atomic_compare_exchange_weak_explicit(atomic<T>*, atomic<T>::value_type*,
317 atomic<T>::value_type,
320 bool atomic_compare_exchange_strong_explicit(volatile atomic<T>*, atomic<T>::value_type*,
321 atomic<T>::value_type,
324 bool atomic_compare_exchange_strong_explicit(atomic<T>*, atomic<T>::value_type*,
325 atomic<T>::value_type,
329 T atomic_fetch_add(volatile atomic<T>*, atomic<T>::difference_type) noexcept;
331 T atomic_fetch_add(atomic<T>*, atomic<T>::difference_type) noexcept;
333 T atomic_fetch_add_explicit(volatile atomic<T>*, atomic<T>::difference_type,
336 T atomic_fetch_add_explicit(atomic<T>*, atomic<T>::difference_type,
339 T atomic_fetch_sub(volatile atomic<T>*, atomic<T>::difference_type) noexcept;
341 T atomic_fetch_sub(atomic<T>*, atomic<T>::difference_type) noexcept;
343 T atomic_fetch_sub_explicit(volatile atomic<T>*, atomic<T>::difference_type,
346 T atomic_fetch_sub_explicit(atomic<T>*, atomic<T>::difference_type,
349 T atomic_fetch_and(volatile atomic<T>*, atomic<T>::value_type) noexcept;
351 T atomic_fetch_and(atomic<T>*, atomic<T>::value_type) noexcept;
353 T atomic_fetch_and_explicit(volatile atomic<T>*, atomic<T>::value_type,
356 T atomic_fetch_and_explicit(atomic<T>*, atomic<T>::value_type,
359 T atomic_fetch_or(volatile atomic<T>*, atomic<T>::value_type) noexcept;
361 T atomic_fetch_or(atomic<T>*, atomic<T>::value_type) noexcept;
363 T atomic_fetch_or_explicit(volatile atomic<T>*, atomic<T>::value_type,
366 T atomic_fetch_or_explicit(atomic<T>*, atomic<T>::value_type,
369 T atomic_fetch_xor(volatile atomic<T>*, atomic<T>::value_type) noexcept;
371 T atomic_fetch_xor(atomic<T>*, atomic<T>::value_type) noexcept;
373 T atomic_fetch_xor_explicit(volatile atomic<T>*, atomic<T>::value_type,
376 T atomic_fetch_xor_explicit(atomic<T>*, atomic<T>::value_type,
380 void atomic_wait(const volatile atomic<T>*, atomic<T>::value_type) noexcept;
382 void atomic_wait(const atomic<T>*, atomic<T>::value_type) noexcept;
384 void atomic_wait_explicit(const volatile atomic<T>*, atomic<T>::value_type,
387 void atomic_wait_explicit(const atomic<T>*, atomic<T>::value_type,
390 void atomic_notify_one(volatile atomic<T>*) noexcept;
392 void atomic_notify_one(atomic<T>*) noexcept;
394 void atomic_notify_all(volatile atomic<T>*) noexcept;
396 void atomic_notify_all(atomic<T>*) noexcept;
400 typedef atomic<bool> atomic_bool;
401 typedef atomic<char> atomic_char;
402 typedef atomic<signed char> atomic_schar;
403 typedef atomic<unsigned char> atomic_uchar;
404 typedef atomic<short> atomic_short;
405 typedef atomic<unsigned short> atomic_ushort;
406 typedef atomic<int> atomic_int;
407 typedef atomic<unsigned int> atomic_uint;
408 typedef atomic<long> atomic_long;
409 typedef atomic<unsigned long> atomic_ulong;
410 typedef atomic<long long> atomic_llong;
411 typedef atomic<unsigned long long> atomic_ullong;
412 typedef atomic<char8_t> atomic_char8_t; // C++20
413 typedef atomic<char16_t> atomic_char16_t;
414 typedef atomic<char32_t> atomic_char32_t;
415 typedef atomic<wchar_t> atomic_wchar_t;
417 typedef atomic<int_least8_t> atomic_int_least8_t;
418 typedef atomic<uint_least8_t> atomic_uint_least8_t;
419 typedef atomic<int_least16_t> atomic_int_least16_t;
420 typedef atomic<uint_least16_t> atomic_uint_least16_t;
421 typedef atomic<int_least32_t> atomic_int_least32_t;
422 typedef atomic<uint_least32_t> atomic_uint_least32_t;
423 typedef atomic<int_least64_t> atomic_int_least64_t;
424 typedef atomic<uint_least64_t> atomic_uint_least64_t;
426 typedef atomic<int_fast8_t> atomic_int_fast8_t;
427 typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
428 typedef atomic<int_fast16_t> atomic_int_fast16_t;
429 typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
430 typedef atomic<int_fast32_t> atomic_int_fast32_t;
431 typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
432 typedef atomic<int_fast64_t> atomic_int_fast64_t;
433 typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
435 typedef atomic<int8_t> atomic_int8_t;
436 typedef atomic<uint8_t> atomic_uint8_t;
437 typedef atomic<int16_t> atomic_int16_t;
438 typedef atomic<uint16_t> atomic_uint16_t;
439 typedef atomic<int32_t> atomic_int32_t;
440 typedef atomic<uint32_t> atomic_uint32_t;
441 typedef atomic<int64_t> atomic_int64_t;
442 typedef atomic<uint64_t> atomic_uint64_t;
444 typedef atomic<intptr_t> atomic_intptr_t;
445 typedef atomic<uintptr_t> atomic_uintptr_t;
446 typedef atomic<size_t> atomic_size_t;
447 typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
448 typedef atomic<intmax_t> atomic_intmax_t;
449 typedef atomic<uintmax_t> atomic_uintmax_t;
508 void atomic_init(volatile atomic<T>* obj, atomic<T>::value_type desr) noexcept;
511 void atomic_init(atomic<T>* obj, atomic<T>::value_type desr) noexcept;
551 # error <atomic> is not implemented
554 # error <atomic> is incompatible with <stdatomic.h> before C++23. Please compile with -std=c++23.
561 "memory order argument to atomic operation is invalid")
566 "memory order argument to atomic operation is invalid")
571 "memory order argument to atomic operation is invalid")
1428 "std::atomic<T> requires that 'T' be a trivially copyable type");
1518 // general atomic<T>
1630 // atomic<Integral>
1713 // atomic<T>
1716 struct atomic
1725 atomic() = default;
1728 atomic() _NOEXCEPT = default;
1732 _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
1741 atomic& operator=(const atomic&) = delete;
1742 atomic& operator=(const atomic&) volatile = delete;
1745 // atomic<T*>
1748 struct atomic<_Tp*>
1756 atomic() _NOEXCEPT = default;
1759 _LIBCPP_CONSTEXPR atomic(_Tp* __d) _NOEXCEPT : __base(__d) {}
1821 atomic& operator=(const atomic&) = delete;
1822 atomic& operator=(const atomic&) volatile = delete;
1830 atomic_is_lock_free(const volatile atomic<_Tp>* __o) _NOEXCEPT
1838 atomic_is_lock_free(const atomic<_Tp>* __o) _NOEXCEPT
1848 atomic_init(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) _NOEXCEPT
1856 atomic_init(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) _NOEXCEPT
1866 atomic_store(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) _NOEXCEPT
1874 atomic_store(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) _NOEXCEPT
1884 atomic_store_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_order…
1893 atomic_store_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_order __m) _NO…
1904 atomic_load(const volatile atomic<_Tp>* __o) _NOEXCEPT
1912 atomic_load(const atomic<_Tp>* __o) _NOEXCEPT
1922 atomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
1931 atomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
1942 atomic_exchange(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) _NOEXCEPT
1950 atomic_exchange(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d) _NOEXCEPT
1960 atomic_exchange_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_or…
1968 atomic_exchange_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __d, memory_order __m) …
1978 atomic_compare_exchange_weak(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, type…
1986 atomic_compare_exchange_weak(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, typename atom…
1996 atomic_compare_exchange_strong(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, ty…
2004 atomic_compare_exchange_strong(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, typename at…
2014 atomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type* …
2015 typename atomic<_Tp>::value_type __d,
2025 atomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e, type…
2037 atomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o,
2038 … typename atomic<_Tp>::value_type* __e, typename atomic<_Tp>::value_type __d,
2048 atomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type* __e,
2049 typename atomic<_Tp>::value_type __d,
2060 void atomic_wait(const volatile atomic<_Tp>* __o,
2061 typename atomic<_Tp>::value_type __v) _NOEXCEPT
2068 void atomic_wait(const atomic<_Tp>* __o,
2069 typename atomic<_Tp>::value_type __v) _NOEXCEPT
2078 void atomic_wait_explicit(const volatile atomic<_Tp>* __o,
2079 typename atomic<_Tp>::value_type __v,
2088 void atomic_wait_explicit(const atomic<_Tp>* __o,
2089 typename atomic<_Tp>::value_type __v,
2100 void atomic_notify_one(volatile atomic<_Tp>* __o) _NOEXCEPT
2106 void atomic_notify_one(atomic<_Tp>* __o) _NOEXCEPT
2115 void atomic_notify_all(volatile atomic<_Tp>* __o) _NOEXCEPT
2121 void atomic_notify_all(atomic<_Tp>* __o) _NOEXCEPT
2131 atomic_fetch_add(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) _NOEXCEPT
2139 atomic_fetch_add(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) _NOEXCEPT
2148 _Tp atomic_fetch_add_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op…
2155 _Tp atomic_fetch_add_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op, memory_…
2164 _Tp atomic_fetch_sub(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) _NOEXCE…
2171 _Tp atomic_fetch_sub(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op) _NOEXCEPT
2180 _Tp atomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op…
2187 _Tp atomic_fetch_sub_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::difference_type __op, memory_…
2201 atomic_fetch_and(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) _NOEXCEPT
2213 atomic_fetch_and(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) _NOEXCEPT
2227 atomic_fetch_and_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_…
2239 atomic_fetch_and_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m…
2253 atomic_fetch_or(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) _NOEXCEPT
2265 atomic_fetch_or(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) _NOEXCEPT
2279 atomic_fetch_or_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_o…
2291 atomic_fetch_or_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m)…
2305 atomic_fetch_xor(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) _NOEXCEPT
2317 atomic_fetch_xor(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op) _NOEXCEPT
2331 atomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_…
2343 atomic_fetch_xor_explicit(atomic<_Tp>* __o, typename atomic<_Tp>::value_type __op, memory_order __m…
2571 typedef atomic<bool> atomic_bool;
2572 typedef atomic<char> atomic_char;
2573 typedef atomic<signed char> atomic_schar;
2574 typedef atomic<unsigned char> atomic_uchar;
2575 typedef atomic<short> atomic_short;
2576 typedef atomic<unsigned short> atomic_ushort;
2577 typedef atomic<int> atomic_int;
2578 typedef atomic<unsigned int> atomic_uint;
2579 typedef atomic<long> atomic_long;
2580 typedef atomic<unsigned long> atomic_ulong;
2581 typedef atomic<long long> atomic_llong;
2582 typedef atomic<unsigned long long> atomic_ullong;
2584 typedef atomic<char8_t> atomic_char8_t;
2586 typedef atomic<char16_t> atomic_char16_t;
2587 typedef atomic<char32_t> atomic_char32_t;
2589 typedef atomic<wchar_t> atomic_wchar_t;
2592 typedef atomic<int_least8_t> atomic_int_least8_t;
2593 typedef atomic<uint_least8_t> atomic_uint_least8_t;
2594 typedef atomic<int_least16_t> atomic_int_least16_t;
2595 typedef atomic<uint_least16_t> atomic_uint_least16_t;
2596 typedef atomic<int_least32_t> atomic_int_least32_t;
2597 typedef atomic<uint_least32_t> atomic_uint_least32_t;
2598 typedef atomic<int_least64_t> atomic_int_least64_t;
2599 typedef atomic<uint_least64_t> atomic_uint_least64_t;
2601 typedef atomic<int_fast8_t> atomic_int_fast8_t;
2602 typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
2603 typedef atomic<int_fast16_t> atomic_int_fast16_t;
2604 typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
2605 typedef atomic<int_fast32_t> atomic_int_fast32_t;
2606 typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
2607 typedef atomic<int_fast64_t> atomic_int_fast64_t;
2608 typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
2610 typedef atomic< int8_t> atomic_int8_t;
2611 typedef atomic<uint8_t> atomic_uint8_t;
2612 typedef atomic< int16_t> atomic_int16_t;
2613 typedef atomic<uint16_t> atomic_uint16_t;
2614 typedef atomic< int32_t> atomic_int32_t;
2615 typedef atomic<uint32_t> atomic_uint32_t;
2616 typedef atomic< int64_t> atomic_int64_t;
2617 typedef atomic<uint64_t> atomic_uint64_t;
2619 typedef atomic<intptr_t> atomic_intptr_t;
2620 typedef atomic<uintptr_t> atomic_uintptr_t;
2621 typedef atomic<size_t> atomic_size_t;
2622 typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
2623 typedef atomic<intmax_t> atomic_intmax_t;
2624 typedef atomic<uintmax_t> atomic_uintmax_t;
2652 typedef atomic<__libcpp_signed_lock_free> atomic_signed_lock_free;
2653 typedef atomic<__libcpp_unsigned_lock_free> atomic_unsigned_lock_free;