18 std::atomic_signal_fence(std::memory_order_acquire);
23 std::atomic_signal_fence(std::memory_order_acquire);
28 std::atomic_signal_fence(std::memory_order_release);
33 std::atomic_signal_fence(std::memory_order_seq_cst);
38 std::atomic_thread_fence(std::memory_order_acquire);
43 std::atomic_thread_fence(std::memory_order_acquire);
48 std::atomic_thread_fence(std::memory_order_release);
53 std::atomic_thread_fence(std::memory_order_seq_cst);
66class Atomic :
protected std::atomic<T>
86 return std::atomic<T>::load(std::memory_order_relaxed);
91 return std::atomic<T>::load((std::memory_order) memoryOrder);
96 return std::atomic<T>::store(
value, std::memory_order_relaxed);
101 return std::atomic<T>::store(
value, (std::memory_order) memoryOrder);
106 std::atomic<T>::compare_exchange_strong(expected, desired, (std::memory_order) memoryOrder);
112 return std::atomic<T>::compare_exchange_strong(expected, desired, (std::memory_order) memoryOrder);
117 return std::atomic<T>::compare_exchange_weak(expected, desired, (std::memory_order) success, (std::memory_order) failure);
122 return std::atomic<T>::exchange(desired, (std::memory_order) memoryOrder);
127 return std::atomic<T>::fetch_add(operand, (std::memory_order) memoryOrder);
132 return std::atomic<T>::fetch_sub(operand, (std::memory_order) memoryOrder);
137 return std::atomic<T>::fetch_and(operand, (std::memory_order) memoryOrder);
142 return std::atomic<T>::fetch_or(operand, (std::memory_order) memoryOrder);
float value(const T *src, size_t ch)
void threadFenceAcquire()
void threadFenceConsume()
void signalFenceAcquire()
void signalFenceRelease()
void threadFenceRelease()
void signalFenceConsume()
bool compareExchangeStrong(T &expected, T desired, MemoryOrder memoryOrder)
Atomic(const Atomic &other)
T exchange(T desired, MemoryOrder memoryOrder)
void storeNonatomic(T value)
bool compareExchangeWeak(T &expected, T desired, MemoryOrder success, MemoryOrder failure)
T fetchAdd(T operand, MemoryOrder memoryOrder)
T fetchSub(T operand, MemoryOrder memoryOrder)
T fetchAnd(T operand, MemoryOrder memoryOrder)
T fetchOr(T operand, MemoryOrder memoryOrder)
T compareExchange(T expected, T desired, MemoryOrder memoryOrder)
T load(MemoryOrder memoryOrder) const
void store(T value, MemoryOrder memoryOrder)