Lines Matching refs:atomic
2 //===--------------------------- atomic -----------------------------------===//
15 atomic synopsis
94 struct atomic
123 atomic() noexcept = default;
124 constexpr atomic(T desr) noexcept;
125 atomic(const atomic&) = delete;
126 atomic& operator=(const atomic&) = delete;
127 atomic& operator=(const atomic&) volatile = delete;
133 struct atomic<integral>
180 atomic() noexcept = default;
181 constexpr atomic(integral desr) noexcept;
182 atomic(const atomic&) = delete;
183 atomic& operator=(const atomic&) = delete;
184 atomic& operator=(const atomic&) volatile = delete;
209 struct atomic<T*>
243 atomic() noexcept = default;
244 constexpr atomic(T* desr) noexcept;
245 atomic(const atomic&) = delete;
246 atomic& operator=(const atomic&) = delete;
247 atomic& operator=(const atomic&) volatile = delete;
268 atomic_is_lock_free(const volatile atomic<T>* obj) noexcept;
272 atomic_is_lock_free(const atomic<T>* obj) noexcept;
276 atomic_init(volatile atomic<T>* obj, T desr) noexcept;
280 atomic_init(atomic<T>* obj, T desr) noexcept;
284 atomic_store(volatile atomic<T>* obj, T desr) noexcept;
288 atomic_store(atomic<T>* obj, T desr) noexcept;
292 atomic_store_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;
296 atomic_store_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;
300 atomic_load(const volatile atomic<T>* obj) noexcept;
304 atomic_load(const atomic<T>* obj) noexcept;
308 atomic_load_explicit(const volatile atomic<T>* obj, memory_order m) noexcept;
312 atomic_load_explicit(const atomic<T>* obj, memory_order m) noexcept;
316 atomic_exchange(volatile atomic<T>* obj, T desr) noexcept;
320 atomic_exchange(atomic<T>* obj, T desr) noexcept;
324 atomic_exchange_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;
328 atomic_exchange_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;
332 atomic_compare_exchange_weak(volatile atomic<T>* obj, T* expc, T desr) noexcept;
336 atomic_compare_exchange_weak(atomic<T>* obj, T* expc, T desr) noexcept;
340 atomic_compare_exchange_strong(volatile atomic<T>* obj, T* expc, T desr) noexcept;
344 atomic_compare_exchange_strong(atomic<T>* obj, T* expc, T desr) noexcept;
348 atomic_compare_exchange_weak_explicit(volatile atomic<T>* obj, T* expc,
354 atomic_compare_exchange_weak_explicit(atomic<T>* obj, T* expc, T desr,
359 atomic_compare_exchange_strong_explicit(volatile atomic<T>* obj,
365 atomic_compare_exchange_strong_explicit(atomic<T>* obj, T* expc,
371 atomic_fetch_add(volatile atomic<Integral>* obj, Integral op) noexcept;
375 atomic_fetch_add(atomic<Integral>* obj, Integral op) noexcept;
379 atomic_fetch_add_explicit(volatile atomic<Integral>* obj, Integral op,
383 atomic_fetch_add_explicit(atomic<Integral>* obj, Integral op,
387 atomic_fetch_sub(volatile atomic<Integral>* obj, Integral op) noexcept;
391 atomic_fetch_sub(atomic<Integral>* obj, Integral op) noexcept;
395 atomic_fetch_sub_explicit(volatile atomic<Integral>* obj, Integral op,
399 atomic_fetch_sub_explicit(atomic<Integral>* obj, Integral op,
403 atomic_fetch_and(volatile atomic<Integral>* obj, Integral op) noexcept;
407 atomic_fetch_and(atomic<Integral>* obj, Integral op) noexcept;
411 atomic_fetch_and_explicit(volatile atomic<Integral>* obj, Integral op,
415 atomic_fetch_and_explicit(atomic<Integral>* obj, Integral op,
419 atomic_fetch_or(volatile atomic<Integral>* obj, Integral op) noexcept;
423 atomic_fetch_or(atomic<Integral>* obj, Integral op) noexcept;
427 atomic_fetch_or_explicit(volatile atomic<Integral>* obj, Integral op,
431 atomic_fetch_or_explicit(atomic<Integral>* obj, Integral op,
435 atomic_fetch_xor(volatile atomic<Integral>* obj, Integral op) noexcept;
439 atomic_fetch_xor(atomic<Integral>* obj, Integral op) noexcept;
443 atomic_fetch_xor_explicit(volatile atomic<Integral>* obj, Integral op,
447 atomic_fetch_xor_explicit(atomic<Integral>* obj, Integral op,
452 atomic_fetch_add(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;
456 atomic_fetch_add(atomic<T*>* obj, ptrdiff_t op) noexcept;
460 atomic_fetch_add_explicit(volatile atomic<T*>* obj, ptrdiff_t op,
464 atomic_fetch_add_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;
468 atomic_fetch_sub(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;
472 atomic_fetch_sub(atomic<T*>* obj, ptrdiff_t op) noexcept;
476 atomic_fetch_sub_explicit(volatile atomic<T*>* obj, ptrdiff_t op,
480 atomic_fetch_sub_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;
484 typedef atomic<bool> atomic_bool;
485 typedef atomic<char> atomic_char;
486 typedef atomic<signed char> atomic_schar;
487 typedef atomic<unsigned char> atomic_uchar;
488 typedef atomic<short> atomic_short;
489 typedef atomic<unsigned short> atomic_ushort;
490 typedef atomic<int> atomic_int;
491 typedef atomic<unsigned int> atomic_uint;
492 typedef atomic<long> atomic_long;
493 typedef atomic<unsigned long> atomic_ulong;
494 typedef atomic<long long> atomic_llong;
495 typedef atomic<unsigned long long> atomic_ullong;
496 typedef atomic<char16_t> atomic_char16_t;
497 typedef atomic<char32_t> atomic_char32_t;
498 typedef atomic<wchar_t> atomic_wchar_t;
500 typedef atomic<int_least8_t> atomic_int_least8_t;
501 typedef atomic<uint_least8_t> atomic_uint_least8_t;
502 typedef atomic<int_least16_t> atomic_int_least16_t;
503 typedef atomic<uint_least16_t> atomic_uint_least16_t;
504 typedef atomic<int_least32_t> atomic_int_least32_t;
505 typedef atomic<uint_least32_t> atomic_uint_least32_t;
506 typedef atomic<int_least64_t> atomic_int_least64_t;
507 typedef atomic<uint_least64_t> atomic_uint_least64_t;
509 typedef atomic<int_fast8_t> atomic_int_fast8_t;
510 typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
511 typedef atomic<int_fast16_t> atomic_int_fast16_t;
512 typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
513 typedef atomic<int_fast32_t> atomic_int_fast32_t;
514 typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
515 typedef atomic<int_fast64_t> atomic_int_fast64_t;
516 typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
518 typedef atomic<int8_t> atomic_int8_t;
519 typedef atomic<uint8_t> atomic_uint8_t;
520 typedef atomic<int16_t> atomic_int16_t;
521 typedef atomic<uint16_t> atomic_uint16_t;
522 typedef atomic<int32_t> atomic_int32_t;
523 typedef atomic<uint32_t> atomic_uint32_t;
524 typedef atomic<int64_t> atomic_int64_t;
525 typedef atomic<uint64_t> atomic_uint64_t;
527 typedef atomic<intptr_t> atomic_intptr_t;
528 typedef atomic<uintptr_t> atomic_uintptr_t;
529 typedef atomic<size_t> atomic_size_t;
530 typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
531 typedef atomic<intmax_t> atomic_intmax_t;
532 typedef atomic<uintmax_t> atomic_uintmax_t;
553 #error <atomic> is not supported on this single threaded system
556 #error <atomic> is not implemented
567 "memory order argument to atomic operation is invalid")
572 "memory order argument to atomic operation is invalid")
577 "memory order argument to atomic operation is invalid")
594 "std::atomic<Tp> requires that 'Tp' be a trivially copyable type");
888 // general atomic<T>
1000 // atomic<Integral>
1081 // atomic<T>
1084 struct atomic
1089 atomic() _NOEXCEPT _LIBCPP_DEFAULT
1091 _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
1101 // atomic<T*>
1104 struct atomic<_Tp*>
1109 atomic() _NOEXCEPT _LIBCPP_DEFAULT
1111 _LIBCPP_CONSTEXPR atomic(_Tp* __d) _NOEXCEPT : __base(__d) {}
1166 atomic_is_lock_free(const volatile atomic<_Tp>* __o) _NOEXCEPT
1174 atomic_is_lock_free(const atomic<_Tp>* __o) _NOEXCEPT
1184 atomic_init(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1192 atomic_init(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1202 atomic_store(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1210 atomic_store(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1220 atomic_store_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1229 atomic_store_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1240 atomic_load(const volatile atomic<_Tp>* __o) _NOEXCEPT
1248 atomic_load(const atomic<_Tp>* __o) _NOEXCEPT
1258 atomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
1267 atomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) _NOEXCEPT
1278 atomic_exchange(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1286 atomic_exchange(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT
1296 atomic_exchange_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1304 atomic_exchange_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT
1314 atomic_compare_exchange_weak(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1322 atomic_compare_exchange_weak(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1332 atomic_compare_exchange_strong(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1340 atomic_compare_exchange_strong(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT
1350 atomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, _Tp* __e,
1361 atomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, _Tp* __e, _Tp __d,
1373 atomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o,
1384 atomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, _Tp* __e,
1401 atomic_fetch_add(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1413 atomic_fetch_add(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1421 atomic_fetch_add(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1429 atomic_fetch_add(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1443 atomic_fetch_add_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1455 atomic_fetch_add_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1463 atomic_fetch_add_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,
1472 atomic_fetch_add_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT
1486 atomic_fetch_sub(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1498 atomic_fetch_sub(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1506 atomic_fetch_sub(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1514 atomic_fetch_sub(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT
1528 atomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1540 atomic_fetch_sub_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1548 atomic_fetch_sub_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,
1557 atomic_fetch_sub_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT
1571 atomic_fetch_and(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1583 atomic_fetch_and(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1597 atomic_fetch_and_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1609 atomic_fetch_and_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1623 atomic_fetch_or(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1635 atomic_fetch_or(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1649 atomic_fetch_or_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1661 atomic_fetch_or_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1675 atomic_fetch_xor(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1687 atomic_fetch_xor(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT
1701 atomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1713 atomic_fetch_xor_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT
1833 typedef atomic<bool> atomic_bool;
1834 typedef atomic<char> atomic_char;
1835 typedef atomic<signed char> atomic_schar;
1836 typedef atomic<unsigned char> atomic_uchar;
1837 typedef atomic<short> atomic_short;
1838 typedef atomic<unsigned short> atomic_ushort;
1839 typedef atomic<int> atomic_int;
1840 typedef atomic<unsigned int> atomic_uint;
1841 typedef atomic<long> atomic_long;
1842 typedef atomic<unsigned long> atomic_ulong;
1843 typedef atomic<long long> atomic_llong;
1844 typedef atomic<unsigned long long> atomic_ullong;
1845 typedef atomic<char16_t> atomic_char16_t;
1846 typedef atomic<char32_t> atomic_char32_t;
1847 typedef atomic<wchar_t> atomic_wchar_t;
1849 typedef atomic<int_least8_t> atomic_int_least8_t;
1850 typedef atomic<uint_least8_t> atomic_uint_least8_t;
1851 typedef atomic<int_least16_t> atomic_int_least16_t;
1852 typedef atomic<uint_least16_t> atomic_uint_least16_t;
1853 typedef atomic<int_least32_t> atomic_int_least32_t;
1854 typedef atomic<uint_least32_t> atomic_uint_least32_t;
1855 typedef atomic<int_least64_t> atomic_int_least64_t;
1856 typedef atomic<uint_least64_t> atomic_uint_least64_t;
1858 typedef atomic<int_fast8_t> atomic_int_fast8_t;
1859 typedef atomic<uint_fast8_t> atomic_uint_fast8_t;
1860 typedef atomic<int_fast16_t> atomic_int_fast16_t;
1861 typedef atomic<uint_fast16_t> atomic_uint_fast16_t;
1862 typedef atomic<int_fast32_t> atomic_int_fast32_t;
1863 typedef atomic<uint_fast32_t> atomic_uint_fast32_t;
1864 typedef atomic<int_fast64_t> atomic_int_fast64_t;
1865 typedef atomic<uint_fast64_t> atomic_uint_fast64_t;
1867 typedef atomic< int8_t> atomic_int8_t;
1868 typedef atomic<uint8_t> atomic_uint8_t;
1869 typedef atomic< int16_t> atomic_int16_t;
1870 typedef atomic<uint16_t> atomic_uint16_t;
1871 typedef atomic< int32_t> atomic_int32_t;
1872 typedef atomic<uint32_t> atomic_uint32_t;
1873 typedef atomic< int64_t> atomic_int64_t;
1874 typedef atomic<uint64_t> atomic_uint64_t;
1876 typedef atomic<intptr_t> atomic_intptr_t;
1877 typedef atomic<uintptr_t> atomic_uintptr_t;
1878 typedef atomic<size_t> atomic_size_t;
1879 typedef atomic<ptrdiff_t> atomic_ptrdiff_t;
1880 typedef atomic<intmax_t> atomic_intmax_t;
1881 typedef atomic<uintmax_t> atomic_uintmax_t;