P0020r6 : Floating Point Atomic (original) (raw)

static constexpr bool is_always_lock_free = implementation-defined ;

bool is_lock_free() const volatile noexcept;

bool is_lock_free() const noexcept;

void store( floating-point , memory_order = memory_order_seq_cst ) volatile noexcept;

void store( floating-point , memory_order = memory_order_seq_cst ) noexcept;

floating-point load( memory_order = memory_order_seq_cst ) volatile noexcept;

floating-point load( memory_order = memory_order_seq_cst ) noexcept;

operator floating-point () volatile noexcept ;

operator floating-point () noexcept ;

floating-point exchange( floating-point , memory_order = memory_order_seq_cst ) volatile noexcept;

floating-point exchange( floating-point , memory_order = memory_order_seq_cst ) noexcept;

bool compare_exchange_weak( floating-point & , floating-point , memory_order , memory_order ) volatile noexcept;

bool compare_exchange_weak( floating-point & , floating-point , memory_order , memory_order ) noexcept;

bool compare_exchange_strong( floating-point & , floating-point , memory_order , memory_order ) volatile noexcept;

bool compare_exchange_strong( floating-point & , floating-point , memory_order , memory_order ) noexcept;

bool compare_exchange_weak( floating-point & , floating-point , memory_order = memory_order_seq_cst ) volatile noexcept;

bool compare_exchange_weak( floating-point & , floating-point , memory_order = memory_order_seq_cst ) noexcept;

bool compare_exchange_strong( floating-point &, floating-point , memory_order = memory_order_seq_cst ) volatile noexcept;

bool compare_exchange_strong( floating-point &, floating-point , memory_order = memory_order_seq_cst ) noexcept;

floating-point fetch_add( floating-point , memory_order = memory_order_seq_cst) volatile noexcept;

floating-point fetch_add( floating-point , memory_order = memory_order_seq_cst) noexcept;

floating-point fetch_sub( floating-point , memory_order = memory_order_seq_cst) volatile noexcept;

floating-point fetch_sub( floating-point , memory_order = memory_order_seq_cst) noexcept;

atomic() noexcept = default ;

constexpr atomic( floating-point ) noexcept ;

atomic( const atomic & ) = delete ;

atomic & operator = ( const atomic & ) = delete ;

atomic & operator = ( const atomic & ) volatile = delete ;

floating-point operator=( floating-point ) volatile noexcept ;

floating-point operator=( floating-point ) noexcept ;

floating-point operator+=( floating-point ) volatile noexcept;

floating-point operator+=( floating-point ) noexcept;

floating-point operator-=( floating-point ) volatile noexcept;

floating-point operator-=( floating-point ) noexcept;