Lines Matching refs:atomic
2 //===--------------------------- atomic -----------------------------------===//
15 atomic synopsis
90 struct atomic
118 atomic() noexcept = default;
119 constexpr atomic(T desr) noexcept;
120 atomic(const atomic&) = delete;
121 atomic& operator=(const atomic&) = delete;
122 atomic& operator=(const atomic&) volatile = delete;
128 struct atomic<integral>
174 atomic() noexcept = default;
175 constexpr atomic(integral desr) noexcept;
176 atomic(const atomic&) = delete;
177 atomic& operator=(const atomic&) = delete;
178 atomic& operator=(const atomic&) volatile = delete;
203 struct atomic<T*>
236 atomic() noexcept = default;
237 constexpr atomic(T* desr) noexcept;
238 atomic(const atomic&) = delete;
239 atomic& operator=(const atomic&) = delete;
240 atomic& operator=(const atomic&) volatile = delete;
261 atomic_is_lock_free(const volatile atomic<T>* obj) noexcept;
265 atomic_is_lock_free(const atomic<T>* obj) noexcept;
269 atomic_init(volatile atomic<T>* obj, T desr) noexcept;
273 atomic_init(atomic<T>* obj, T desr) noexcept;
277 atomic_store(volatile atomic<T>* obj, T desr) noexcept;
281 atomic_store(atomic<T>* obj, T desr) noexcept;
285 atomic_store_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;
289 atomic_store_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;
293 atomic_load(const volatile atomic<T>* obj) noexcept;
297 atomic_load(const atomic<T>* obj) noexcept;
301 atomic_load_explicit(const volatile atomic<T>* obj, memory_order m) noexcept;
305 atomic_load_explicit(const atomic<T>* obj, memory_order m) noexcept;
309 atomic_exchange(volatile atomic<T>* obj, T desr) noexcept;
313 atomic_exchange(atomic<T>* obj, T desr) noexcept;
317 atomic_exchange_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;
321 atomic_exchange_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;
325 atomic_compare_exchange_weak(volatile atomic<T>* obj, T* expc, T desr) noexcept;
329 atomic_compare_exchange_weak(atomic<T>* obj, T* expc, T desr) noexcept;
333 atomic_compare_exchange_strong(volatile atomic<T>* obj, T* expc, T desr) noexcept;
337 atomic_compare_exchange_strong(atomic<T>* obj, T* expc, T desr) noexcept;
341 atomic_compare_exchange_weak_explicit(volatile atomic<T>* obj, T* expc,
347 atomic_compare_exchange_weak_explicit(atomic<T>* obj, T* expc, T desr,
352 atomic_compare_exchange_strong_explicit(volatile atomic<T>* obj,
358 atomic_compare_exchange_strong_explicit(atomic<T>* obj, T* expc,
364 atomic_fetch_add(volatile atomic<Integral>* obj, Integral op) noexcept;
368 atomic_fetch_add(atomic<Integral>* obj, Integral op) noexcept;
372 atomic_fetch_add_explicit(volatile atomic<Integral>* obj, Integral op,
376 atomic_fetch_add_explicit(atomic<Integral>* obj, Integral op,
380 atomic_fetch_sub(volatile atomic<Integral>* obj, Integral op) noexcept;
384 atomic_fetch_sub(atomic<Integral>* obj, Integral op) noexcept;
388 atomic_fetch_sub_explicit(volatile atomic<Integral>* obj, Integral op,
392 atomic_fetch_sub_explicit(atomic<Integral>* obj, Integral op,
396 atomic_fetch_and(volatile atomic<Integral>* obj, Integral op) noexcept;
400 atomic_fetch_and(atomic<Integral>* obj, Integral op) noexcept;
404 atomic_fetch_and_explicit(volatile atomic<Integral>* obj, Integral op,
408 atomic_fetch_and_explicit(atomic<Integral>* obj, Integral op,
412 atomic_fetch_or(volatile atomic<Integral>* obj, Integral op) noexcept;
416 atomic_fetch_or(atomic<Integral>* obj, Integral op) noexcept;
420 atomic_fetch_or_explicit(volatile atomic<Integral>* obj, Integral op,
424 atomic_fetch_or_explicit(atomic<Integral>* obj, Integral op,
428 atomic_fetch_xor(volatile atomic<Integral>* obj, Integral op) noexcept;
432 atomic_fetch_xor(atomic<Integral>* obj, Integral op) noexcept;
436 atomic_fetch_xor_explicit(volatile atomic<Integral>* obj, Integral op,
440 atomic_fetch_xor_explicit(atomic<Integral>* obj, Integral op,
445 atomic_fetch_add(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;
449 atomic_fetch_add(atomic<T*>* obj, ptrdiff_t op) noexcept;
453 atomic_fetch_add_explicit(volatile atomic<T*>* obj, ptrdiff_t op,
457 atomic_fetch_add_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;
461 atomic_fetch_sub(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;
465 atomic_fetch_sub(atomic<T*>* obj, ptrdiff_t op) noexcept;
469 atomic_fetch_sub_explicit(volatile atomic<T*>* obj, ptrdiff_t op,
473 atomic_fetch_sub_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;
477 typedef atomic<bool> atomic_bool;
478 typedef atomic<char> atomic_char;
479 typedef atomic<signed char> atomic_schar;
480 typedef atomic<unsigned char> atomic_uchar;
481 typedef atomic<short> atomic_short;
482 typedef atomic<unsigned short> atomic_ushort;
483 typedef atomic<int> atomic_int;
484 typedef atomic<unsigned int> atomic_uint;
485 typedef atomic<long> atomic_long;
486 typedef atomic<unsigned long> atomic_ulong;
487 typedef atomic<long long> atomic_llong;
488 typedef atomic<unsigned long long> atomic_ullong;
489 typedef atomic<char16_t> atomic_char16_t;
490 typedef atomic<char32_t> atomic_char32_t;
491 typedef atomic<wchar_t> atomic_wchar_t;
493 typedef atomic<int_least8_t> atomic_int_least8_t;
494 typedef atomic<uint_least8_t> atomic_uint_least8_t;
495 typedef atomic<int_least16_t> atomic_int_least16_t;
496 typedef atomic<uint_least16_t> atomic_uint_least16_t;
497 typedef atomic<int_least32_t> atomic_int_least32_t;
498 typedef atomic<uint_least32_t> atomic_uint_least32_t;
499 typedef atomic<int_least64_t> atomic_int_least64_t;
500 typedef atomic<uint_least64_t> atomic_uint_least64_t;
502 typedef atomic<int_fast8_t> atomic_int_fast8_t;
503 typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
504 typedef atomic<int_fast16_t> atomic_int_fast16_t;
505 typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
506 typedef atomic<int_fast32_t> atomic_int_fast32_t;
507 typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
508 typedef atomic<int_fast64_t> atomic_int_fast64_t;
509 typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
511 typedef atomic<intptr_t> atomic_intptr_t;
512 typedef atomic<uintptr_t> atomic_uintptr_t;
513 typedef atomic<size_t> atomic_size_t;
514 typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
515 typedef atomic<intmax_t> atomic_intmax_t;
516 typedef atomic<uintmax_t> atomic_uintmax_t;
537 #error <atomic> is not supported on this single threaded system
543 #error <atomic> is not implemented
818 // general atomic<T>
913 // atomic<Integral>
994 // atomic<T>
997 struct atomic
1002 atomic() _NOEXCEPT _LIBCPP_DEFAULT
1004 _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
1014 // atomic<T*>
1017 struct atomic<_Tp*>
1022 atomic() _NOEXCEPT _LIBCPP_DEFAULT
1024 _LIBCPP_CONSTEXPR atomic(_Tp* __d) _NOEXCEPT : __base(__d) {}
1079 atomic_is_lock_free(const volatile atomic<_Tp>* __o) _NOEXCEPT
1087 atomic_is_lock_free(const atomic<_Tp>* __o) _NOEXCEPT
1097 atomic_init(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1105 atomic_init(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1115 atomic_store(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1123 atomic_store(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1133 atomic_store_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1141 atomic_store_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1151 atomic_load(const volatile atomic<_Tp>* __o) _NOEXCEPT
1159 atomic_load(const atomic<_Tp>* __o) _NOEXCEPT
1169 atomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
1177 atomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
1187 atomic_exchange(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1195 atomic_exchange(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1205 atomic_exchange_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1213 atomic_exchange_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1223 atomic_compare_exchange_weak(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1231 atomic_compare_exchange_weak(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1241 atomic_compare_exchange_strong(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1249 atomic_compare_exchange_strong(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1259 atomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, _Tp* __e,
1269 atomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, _Tp* __e, _Tp __d,
1280 atomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o,
1290 atomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, _Tp* __e,
1306 atomic_fetch_add(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1318 atomic_fetch_add(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1326 atomic_fetch_add(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1334 atomic_fetch_add(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1348 atomic_fetch_add_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1360 atomic_fetch_add_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1368 atomic_fetch_add_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,
1377 atomic_fetch_add_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT
1391 atomic_fetch_sub(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1403 atomic_fetch_sub(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1411 atomic_fetch_sub(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1419 atomic_fetch_sub(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1433 atomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1445 atomic_fetch_sub_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1453 atomic_fetch_sub_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,
1462 atomic_fetch_sub_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT
1476 atomic_fetch_and(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1488 atomic_fetch_and(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1502 atomic_fetch_and_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1514 atomic_fetch_and_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1528 atomic_fetch_or(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1540 atomic_fetch_or(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1554 atomic_fetch_or_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1566 atomic_fetch_or_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1580 atomic_fetch_xor(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1592 atomic_fetch_xor(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1606 atomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1618 atomic_fetch_xor_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1738 typedef atomic<bool> atomic_bool;
1739 typedef atomic<char> atomic_char;
1740 typedef atomic<signed char> atomic_schar;
1741 typedef atomic<unsigned char> atomic_uchar;
1742 typedef atomic<short> atomic_short;
1743 typedef atomic<unsigned short> atomic_ushort;
1744 typedef atomic<int> atomic_int;
1745 typedef atomic<unsigned int> atomic_uint;
1746 typedef atomic<long> atomic_long;
1747 typedef atomic<unsigned long> atomic_ulong;
1748 typedef atomic<long long> atomic_llong;
1749 typedef atomic<unsigned long long> atomic_ullong;
1750 typedef atomic<char16_t> atomic_char16_t;
1751 typedef atomic<char32_t> atomic_char32_t;
1752 typedef atomic<wchar_t> atomic_wchar_t;
1754 typedef atomic<int_least8_t> atomic_int_least8_t;
1755 typedef atomic<uint_least8_t> atomic_uint_least8_t;
1756 typedef atomic<int_least16_t> atomic_int_least16_t;
1757 typedef atomic<uint_least16_t> atomic_uint_least16_t;
1758 typedef atomic<int_least32_t> atomic_int_least32_t;
1759 typedef atomic<uint_least32_t> atomic_uint_least32_t;
1760 typedef atomic<int_least64_t> atomic_int_least64_t;
1761 typedef atomic<uint_least64_t> atomic_uint_least64_t;
1763 typedef atomic<int_fast8_t> atomic_int_fast8_t;
1764 typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
1765 typedef atomic<int_fast16_t> atomic_int_fast16_t;
1766 typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
1767 typedef atomic<int_fast32_t> atomic_int_fast32_t;
1768 typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
1769 typedef atomic<int_fast64_t> atomic_int_fast64_t;
1770 typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
1772 typedef atomic<intptr_t> atomic_intptr_t;
1773 typedef atomic<uintptr_t> atomic_uintptr_t;
1774 typedef atomic<size_t> atomic_size_t;
1775 typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
1776 typedef atomic<intmax_t> atomic_intmax_t;
1777 typedef atomic<uintmax_t> atomic_uintmax_t;