5#ifdef ROO_THREADS_SINGLETHREADED
7enum memory_order :
int {
22 ~atomic() noexcept = default;
23 atomic(const atomic&) = delete;
24 atomic& operator=(const atomic&) = delete;
25 atomic& operator=(const atomic&) volatile = delete;
27 constexpr atomic(T value) noexcept : value_(value) {}
29 operator T() const noexcept {
return value_; }
31 operator T() const volatile noexcept {
return value_; }
33 T operator=(T value)
noexcept {
38 T operator=(T value)
volatile noexcept {
43 bool is_lock_free() const noexcept {
47 bool is_lock_free() const volatile noexcept {
51 void store(T value, memory_order m = memory_order_seq_cst)
noexcept {
56 memory_order m = memory_order_seq_cst)
volatile noexcept {
60 T load(memory_order m = memory_order_seq_cst)
const noexcept {
64 T load(memory_order m = memory_order_seq_cst)
const volatile noexcept {
68 T exchange(T value, memory_order m = memory_order_seq_cst)
noexcept {