libstdc++
std::atomic< _Tp * > Struct Template Reference

Public Types

typedef __atomic_base< _Tp * > __base_type
 
typedef _Tp * __pointer_type
 
using difference_type = ptrdiff_t
 
using value_type = _Tp *
 

Public Member Functions

constexpr atomic (__pointer_type __p) noexcept
 
 atomic (const atomic &)=delete
 
bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m1, memory_order __m2) noexcept
 
bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m1, memory_order __m2) volatile noexcept
 
bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory_order_seq_cst) noexcept
 
bool compare_exchange_strong (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory_order_seq_cst) volatile noexcept
 
bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m1, memory_order __m2) noexcept
 
bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m1, memory_order __m2) volatile noexcept
 
bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory_order_seq_cst) noexcept
 
bool compare_exchange_weak (__pointer_type &__p1, __pointer_type __p2, memory_order __m=memory_order_seq_cst) volatile noexcept
 
__pointer_type exchange (__pointer_type __p, memory_order __m=memory_order_seq_cst) noexcept
 
__pointer_type exchange (__pointer_type __p, memory_order __m=memory_order_seq_cst) volatile noexcept
 
__pointer_type fetch_add (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) noexcept
 
__pointer_type fetch_add (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) volatile noexcept
 
__pointer_type fetch_sub (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) noexcept
 
__pointer_type fetch_sub (ptrdiff_t __d, memory_order __m=memory_order_seq_cst) volatile noexcept
 
bool is_lock_free () const noexcept
 
bool is_lock_free () const volatile noexcept
 
__pointer_type load (memory_order __m=memory_order_seq_cst) const noexcept
 
__pointer_type load (memory_order __m=memory_order_seq_cst) const volatile noexcept
 
 operator __pointer_type () const noexcept
 
 operator __pointer_type () const volatile noexcept
 
__pointer_type operator++ () noexcept
 
__pointer_type operator++ () volatile noexcept
 
__pointer_type operator++ (int) noexcept
 
__pointer_type operator++ (int) volatile noexcept
 
__pointer_type operator+= (ptrdiff_t __d) noexcept
 
__pointer_type operator+= (ptrdiff_t __d) volatile noexcept
 
__pointer_type operator-- () noexcept
 
__pointer_type operator-- () volatile noexcept
 
__pointer_type operator-- (int) noexcept
 
__pointer_type operator-- (int) volatile noexcept
 
__pointer_type operator-= (ptrdiff_t __d) noexcept
 
__pointer_type operator-= (ptrdiff_t __d) volatile noexcept
 
__pointer_type operator= (__pointer_type __p) noexcept
 
__pointer_type operator= (__pointer_type __p) volatile noexcept
 
atomicoperator= (const atomic &) volatile=delete
 
atomicoperator= (const atomic &)=delete
 
void store (__pointer_type __p, memory_order __m=memory_order_seq_cst) noexcept
 
void store (__pointer_type __p, memory_order __m=memory_order_seq_cst) volatile noexcept
 

Public Attributes

__base_type _M_b
 

Static Public Attributes

static constexpr bool is_always_lock_free
 

Detailed Description

template<typename _Tp>
struct std::atomic< _Tp * >

Partial specialization for pointer types.

Definition at line 407 of file atomic.


The documentation for this struct was generated from the following file: