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

#include <atomic>

Public Types

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

Public Member Functions

constexpr atomic (__pointer_type __p) noexcept
 
constexpr atomic (_Tp __i) noexcept
 
 atomic (const atomic &)=delete
 
 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_strong (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) noexcept
 
bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept
 
bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) noexcept
 
bool compare_exchange_strong (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) 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
 
bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) noexcept
 
bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept
 
bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) noexcept
 
bool compare_exchange_weak (_Tp &__e, _Tp __i, memory_order __s, memory_order __f) 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
 
_Tp exchange (_Tp __i, memory_order __m=memory_order_seq_cst) noexcept
 
_Tp exchange (_Tp __i, 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 noexcept
 
bool is_lock_free () const volatile noexcept
 
bool is_lock_free () const volatile noexcept
 
_Tp load (memory_order __m=memory_order_seq_cst) const noexcept
 
__pointer_type load (memory_order __m=memory_order_seq_cst) const noexcept
 
_Tp load (memory_order __m=memory_order_seq_cst) const volatile 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
 
 operator _Tp () const noexcept
 
 operator _Tp () 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
 
_Tp operator= (_Tp __i) noexcept
 
_Tp operator= (_Tp __i) volatile noexcept
 
atomicoperator= (const atomic &) volatile =delete
 
atomicoperator= (const atomic &) volatile=delete
 
atomicoperator= (const atomic &)=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
 
void store (_Tp __i, memory_order __m=memory_order_seq_cst) noexcept
 
void store (_Tp __i, memory_order __m=memory_order_seq_cst) volatile noexcept
 

Public Attributes

__base_type _M_b
 

Detailed Description

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

Partial specialization for pointer types.

Definition at line 421 of file atomic.

Member Typedef Documentation

◆ __base_type

template<typename _Tp>
typedef __atomic_base<_Tp*> std::atomic< _Tp * >::__base_type

Definition at line 427 of file atomic.

◆ __pointer_type

template<typename _Tp>
typedef _Tp* std::atomic< _Tp * >::__pointer_type

Definition at line 426 of file atomic.

◆ difference_type

template<typename _Tp>
using std::atomic< _Tp * >::difference_type

Definition at line 424 of file atomic.

◆ value_type [1/2]

using std::atomic< _Tp >::value_type

Definition at line 208 of file atomic.

◆ value_type [2/2]

template<typename _Tp>
using std::atomic< _Tp * >::value_type

Definition at line 423 of file atomic.

Constructor & Destructor Documentation

◆ atomic() [1/2]

template<typename _Tp>
std::atomic< _Tp * >::atomic ( __pointer_type __p)
inlineconstexprnoexcept

Definition at line 436 of file atomic.

◆ atomic() [2/2]

std::atomic< _Tp >::atomic ( _Tp __i)
inlineconstexprnoexcept

Definition at line 241 of file atomic.

Member Function Documentation

◆ compare_exchange_strong() [1/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_strong ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m1,
memory_order __m2 )
inlinenoexcept

Definition at line 629 of file atomic.

◆ compare_exchange_strong() [2/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_strong ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m1,
memory_order __m2 ) volatile
inlinenoexcept

Definition at line 634 of file atomic.

◆ compare_exchange_strong() [3/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_strong ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 640 of file atomic.

◆ compare_exchange_strong() [4/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_strong ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 648 of file atomic.

◆ compare_exchange_strong() [5/8]

bool std::atomic< _Tp >::compare_exchange_strong ( _Tp & __e,
_Tp __i,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 386 of file atomic.

◆ compare_exchange_strong() [6/8]

bool std::atomic< _Tp >::compare_exchange_strong ( _Tp & __e,
_Tp __i,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 392 of file atomic.

◆ compare_exchange_strong() [7/8]

bool std::atomic< _Tp >::compare_exchange_strong ( _Tp & __e,
_Tp __i,
memory_order __s,
memory_order __f )
inlinenoexcept

Definition at line 370 of file atomic.

◆ compare_exchange_strong() [8/8]

bool std::atomic< _Tp >::compare_exchange_strong ( _Tp & __e,
_Tp __i,
memory_order __s,
memory_order __f ) volatile
inlinenoexcept

Definition at line 378 of file atomic.

◆ compare_exchange_weak() [1/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_weak ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m1,
memory_order __m2 )
inlinenoexcept

Definition at line 602 of file atomic.

◆ compare_exchange_weak() [2/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_weak ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m1,
memory_order __m2 ) volatile
inlinenoexcept

Definition at line 607 of file atomic.

◆ compare_exchange_weak() [3/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_weak ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 613 of file atomic.

◆ compare_exchange_weak() [4/8]

template<typename _Tp>
bool std::atomic< _Tp * >::compare_exchange_weak ( __pointer_type & __p1,
__pointer_type __p2,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 621 of file atomic.

◆ compare_exchange_weak() [5/8]

bool std::atomic< _Tp >::compare_exchange_weak ( _Tp & __e,
_Tp __i,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 358 of file atomic.

◆ compare_exchange_weak() [6/8]

bool std::atomic< _Tp >::compare_exchange_weak ( _Tp & __e,
_Tp __i,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 364 of file atomic.

◆ compare_exchange_weak() [7/8]

bool std::atomic< _Tp >::compare_exchange_weak ( _Tp & __e,
_Tp __i,
memory_order __s,
memory_order __f )
inlinenoexcept

Definition at line 342 of file atomic.

◆ compare_exchange_weak() [8/8]

bool std::atomic< _Tp >::compare_exchange_weak ( _Tp & __e,
_Tp __i,
memory_order __s,
memory_order __f ) volatile
inlinenoexcept

Definition at line 350 of file atomic.

◆ exchange() [1/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::exchange ( __pointer_type __p,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 592 of file atomic.

◆ exchange() [2/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::exchange ( __pointer_type __p,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 597 of file atomic.

◆ exchange() [3/4]

_Tp std::atomic< _Tp >::exchange ( _Tp __i,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 319 of file atomic.

◆ exchange() [4/4]

_Tp std::atomic< _Tp >::exchange ( _Tp __i,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 330 of file atomic.

◆ fetch_add() [1/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::fetch_add ( ptrdiff_t __d,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 672 of file atomic.

◆ fetch_add() [2/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::fetch_add ( ptrdiff_t __d,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 682 of file atomic.

◆ fetch_sub() [1/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::fetch_sub ( ptrdiff_t __d,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 692 of file atomic.

◆ fetch_sub() [2/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::fetch_sub ( ptrdiff_t __d,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 702 of file atomic.

◆ is_lock_free() [1/4]

bool std::atomic< _Tp >::is_lock_free ( ) const
inlinenoexcept

Definition at line 264 of file atomic.

◆ is_lock_free() [2/4]

template<typename _Tp>
bool std::atomic< _Tp * >::is_lock_free ( ) const
inlinenoexcept

Definition at line 561 of file atomic.

◆ is_lock_free() [3/4]

bool std::atomic< _Tp >::is_lock_free ( ) const volatile
inlinenoexcept

Definition at line 272 of file atomic.

◆ is_lock_free() [4/4]

template<typename _Tp>
bool std::atomic< _Tp * >::is_lock_free ( ) const volatile
inlinenoexcept

Definition at line 565 of file atomic.

◆ load() [1/4]

_Tp std::atomic< _Tp >::load ( memory_order __m = memory_order_seq_cst) const
inlinenoexcept

Definition at line 301 of file atomic.

◆ load() [2/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::load ( memory_order __m = memory_order_seq_cst) const
inlinenoexcept

Definition at line 584 of file atomic.

◆ load() [3/4]

_Tp std::atomic< _Tp >::load ( memory_order __m = memory_order_seq_cst) const volatile
inlinenoexcept

Definition at line 310 of file atomic.

◆ load() [4/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::load ( memory_order __m = memory_order_seq_cst) const volatile
inlinenoexcept

Definition at line 588 of file atomic.

◆ operator __pointer_type() [1/2]

template<typename _Tp>
std::atomic< _Tp * >::operator __pointer_type ( ) const
inlinenoexcept

Definition at line 438 of file atomic.

◆ operator __pointer_type() [2/2]

template<typename _Tp>
std::atomic< _Tp * >::operator __pointer_type ( ) const volatile
inlinenoexcept

Definition at line 441 of file atomic.

◆ operator _Tp() [1/2]

std::atomic< _Tp >::operator _Tp ( ) const
inlinenoexcept

Definition at line 249 of file atomic.

◆ operator _Tp() [2/2]

std::atomic< _Tp >::operator _Tp ( ) const volatile
inlinenoexcept

Definition at line 252 of file atomic.

◆ operator++() [1/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator++ ( )
inlinenoexcept

Definition at line 489 of file atomic.

◆ operator++() [2/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator++ ( ) volatile
inlinenoexcept

Definition at line 498 of file atomic.

◆ operator++() [3/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator++ ( int )
inlinenoexcept

Definition at line 453 of file atomic.

◆ operator++() [4/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator++ ( int ) volatile
inlinenoexcept

Definition at line 462 of file atomic.

◆ operator+=() [1/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator+= ( ptrdiff_t __d)
inlinenoexcept

Definition at line 525 of file atomic.

◆ operator+=() [2/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator+= ( ptrdiff_t __d) volatile
inlinenoexcept

Definition at line 534 of file atomic.

◆ operator--() [1/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator-- ( )
inlinenoexcept

Definition at line 507 of file atomic.

◆ operator--() [2/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator-- ( ) volatile
inlinenoexcept

Definition at line 516 of file atomic.

◆ operator--() [3/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator-- ( int )
inlinenoexcept

Definition at line 471 of file atomic.

◆ operator--() [4/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator-- ( int ) volatile
inlinenoexcept

Definition at line 480 of file atomic.

◆ operator-=() [1/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator-= ( ptrdiff_t __d)
inlinenoexcept

Definition at line 543 of file atomic.

◆ operator-=() [2/2]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator-= ( ptrdiff_t __d) volatile
inlinenoexcept

Definition at line 552 of file atomic.

◆ operator=() [1/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator= ( __pointer_type __p)
inlinenoexcept

Definition at line 445 of file atomic.

◆ operator=() [2/4]

template<typename _Tp>
__pointer_type std::atomic< _Tp * >::operator= ( __pointer_type __p) volatile
inlinenoexcept

Definition at line 449 of file atomic.

◆ operator=() [3/4]

_Tp std::atomic< _Tp >::operator= ( _Tp __i)
inlinenoexcept

Definition at line 256 of file atomic.

◆ operator=() [4/4]

_Tp std::atomic< _Tp >::operator= ( _Tp __i) volatile
inlinenoexcept

Definition at line 260 of file atomic.

◆ store() [1/4]

template<typename _Tp>
void std::atomic< _Tp * >::store ( __pointer_type __p,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 574 of file atomic.

◆ store() [2/4]

template<typename _Tp>
void std::atomic< _Tp * >::store ( __pointer_type __p,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 579 of file atomic.

◆ store() [3/4]

void std::atomic< _Tp >::store ( _Tp __i,
memory_order __m = memory_order_seq_cst )
inlinenoexcept

Definition at line 285 of file atomic.

◆ store() [4/4]

void std::atomic< _Tp >::store ( _Tp __i,
memory_order __m = memory_order_seq_cst ) volatile
inlinenoexcept

Definition at line 293 of file atomic.

Member Data Documentation

◆ _M_b

template<typename _Tp>
__base_type std::atomic< _Tp * >::_M_b

Definition at line 428 of file atomic.


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