14template <
typename Impl,
typename T>
20 using Base::is_always_lock_free;
21 using Base::is_lock_free;
35 void store(T
desired, std::memory_order
order = std::memory_order_seq_cst)
volatile noexcept {
39 T
load(std::memory_order
order = std::memory_order_seq_cst)
const noexcept {
43 T
load(std::memory_order
order = std::memory_order_seq_cst)
const volatile noexcept {
74 std::memory_order
failure)
volatile noexcept {
91 std::memory_order
order = std::memory_order_seq_cst)
volatile noexcept {
104 std::memory_order
failure)
volatile noexcept {
113 std::memory_order
order = std::memory_order_seq_cst)
volatile noexcept {
119template <
typename Impl,
typename T,
bool IsFloating = std::is_
floating_po
int_v<T>>
127template <
typename Impl,
typename T>
171template <
typename Impl,
typename T,
bool IsIntegral = std::is_
integral_v<T> && !std::is_same_v<T,
bool>>
179template <
typename Impl,
typename T>
277template <
typename Impl,
typename T>
285template <
typename Impl,
typename U>
296 U*
fetch_add(std::ptrdiff_t
arg, std::memory_order
order = std::memory_order_seq_cst)
volatile noexcept {
305 U*
fetch_sub(std::ptrdiff_t
arg, std::memory_order
order = std::memory_order_seq_cst)
volatile noexcept {
void store(T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
bool compare_exchange_strong(T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
bool compare_exchange_weak(T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
T operator=(T desired) noexcept
bool compare_exchange_strong(T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
T exchange(T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
T operator=(T desired) volatile noexcept
T exchange(T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
bool compare_exchange_strong(T &expected, T desired, std::memory_order success, std::memory_order failure) volatile noexcept
bool compare_exchange_strong(T &expected, T desired, std::memory_order success, std::memory_order failure) noexcept
bool compare_exchange_weak(T &expected, T desired, std::memory_order success, std::memory_order failure) volatile noexcept
bool compare_exchange_weak(T &expected, T desired, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
T load(std::memory_order order=std::memory_order_seq_cst) const noexcept
bool compare_exchange_weak(T &expected, T desired, std::memory_order success, std::memory_order failure) noexcept
void store(T desired, std::memory_order order=std::memory_order_seq_cst) noexcept
T load(std::memory_order order=std::memory_order_seq_cst) const volatile noexcept
T fetch_sub(T arg, std::memory_order order=std::memory_order_seq_cst) noexcept
T operator-=(T arg) volatile noexcept
T fetch_add(T arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
T operator-=(T arg) noexcept
T operator+=(T arg) noexcept
T operator+=(T arg) volatile noexcept
T fetch_add(T arg, std::memory_order order=std::memory_order_seq_cst) noexcept
T fetch_sub(T arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
T operator^=(T arg) volatile noexcept
T fetch_xor(T arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
T operator|=(T arg) noexcept
T fetch_and(T arg, std::memory_order order=std::memory_order_seq_cst) noexcept
T operator++(int) volatile noexcept
T operator--(int) noexcept
T operator++(int) noexcept
T fetch_or(T arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
T operator|=(T arg) volatile noexcept
T operator--() volatile noexcept
T operator++() volatile noexcept
T fetch_and(T arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
T fetch_or(T arg, std::memory_order order=std::memory_order_seq_cst) noexcept
T fetch_xor(T arg, std::memory_order order=std::memory_order_seq_cst) noexcept
T operator&=(T arg) noexcept
T operator&=(T arg) volatile noexcept
T operator^=(T arg) noexcept
T operator--(int) volatile noexcept
U * operator+=(std::ptrdiff_t arg) noexcept
U * fetch_add(std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
U * operator++(int) volatile noexcept
U * operator++() volatile noexcept
U * operator--() volatile noexcept
U * operator--(int) volatile noexcept
U * operator-=(std::ptrdiff_t arg) volatile noexcept
U * operator++(int) noexcept
U * fetch_sub(std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) noexcept
U * operator+=(std::ptrdiff_t arg) volatile noexcept
U * operator-=(std::ptrdiff_t arg) noexcept
U * fetch_add(std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) noexcept
U * operator--() noexcept
U * operator--(int) noexcept
U * operator++() noexcept
U * fetch_sub(std::ptrdiff_t arg, std::memory_order order=std::memory_order_seq_cst) volatile noexcept
#define YACLIB_INJECT_FAULT(statement)
void SetAtomicWeakFailFrequency(std::uint32_t k)
bool ShouldFailAtomicWeak()
Contract< V, E > MakeContract()
Creates related future and promise.