STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Private Attributes | List of all members
_Atomic_impl< _Bytes > Struct Template Reference
Inheritance diagram for _Atomic_impl< _Bytes >:
_Atomic_base< _Ty, _Bytes > _Atomic_base< _Ty, sizeof(_Ty)> atomic< _Ty >

Public Types

typedef _Uint1_t _My_int
 

Public Member Functions

constexpr _Atomic_impl () _NOEXCEPT
 
bool _Is_lock_free () const volatile
 
void _Store (void *_Tgt, const void *_Src, memory_order _Order) volatile
 
void _Load (void *_Tgt, const void *_Src, memory_order _Order) const volatile
 
void _Exchange (void *_Left, void *_Right, memory_order _Order) volatile
 
bool _Compare_exchange_weak (void *_Tgt, void *_Exp, const void *_Value, memory_order _Order1, memory_order _Order2) volatile
 
bool _Compare_exchange_strong (void *_Tgt, void *_Exp, const void *_Value, memory_order _Order1, memory_order _Order2) volatile
 

Private Attributes

_Atomic_flag_t _My_flag
 

Member Typedef Documentation

template<unsigned _Bytes>
typedef _Uint1_t _Atomic_impl< _Bytes >::_My_int

Constructor & Destructor Documentation

template<unsigned _Bytes>
constexpr _Atomic_impl< _Bytes >::_Atomic_impl ( )
inline
268  : _My_flag(0)
269  { // default constructor
270  }
_Atomic_flag_t _My_flag
Definition: atomic:310

Member Function Documentation

template<unsigned _Bytes>
bool _Atomic_impl< _Bytes >::_Compare_exchange_strong ( void _Tgt,
void _Exp,
const void _Value,
memory_order  _Order1,
memory_order  _Order2 
) volatile
inline
304  { // lock and compare/exchange
306  &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2));
307  }
_Atomic_flag_t _My_flag
Definition: atomic:310
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
int _Atomic_compare_exchange_strong(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile void *_Exp, const volatile void *_Src, memory_order _Order1, memory_order _Order2)
Definition: xatomic.h:2463
_In_ int _Value
Definition: setjmp.h:173
template<unsigned _Bytes>
bool _Atomic_impl< _Bytes >::_Compare_exchange_weak ( void _Tgt,
void _Exp,
const void _Value,
memory_order  _Order1,
memory_order  _Order2 
) volatile
inline
296  { // lock and compare/exchange
298  &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2));
299  }
_Atomic_flag_t _My_flag
Definition: atomic:310
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
int _Atomic_compare_exchange_weak(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile void *_Exp, const volatile void *_Src, memory_order _Order1, memory_order _Order2)
Definition: xatomic.h:2446
_In_ int _Value
Definition: setjmp.h:173
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Exchange ( void _Left,
void _Right,
memory_order  _Order 
) volatile
inline
289  { // lock and exchange
290  _Atomic_exchange(&_My_flag, _Bytes, _Left, _Right, _Order);
291  }
constexpr const _Ty &() _Left
Definition: algorithm:3590
_Atomic_flag_t _My_flag
Definition: atomic:310
void _Atomic_exchange(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile void *_Src, memory_order _Order)
Definition: xatomic.h:2428
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<unsigned _Bytes>
bool _Atomic_impl< _Bytes >::_Is_lock_free ( ) const volatile
inline
273  { // operations that use locks are not lock-free
274  return (false);
275  }
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Load ( void _Tgt,
const void _Src,
memory_order  _Order 
) const volatile
inline
284  { // lock and load
285  _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order);
286  }
_Atomic_flag_t _My_flag
Definition: atomic:310
void _Atomic_copy(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile const void *_Src, memory_order _Order)
Definition: xatomic.h:2418
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Store ( void _Tgt,
const void _Src,
memory_order  _Order 
) volatile
inline
278  { // lock and store
279  _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order);
280  }
_Atomic_flag_t _My_flag
Definition: atomic:310
void _Atomic_copy(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile const void *_Src, memory_order _Order)
Definition: xatomic.h:2418

Member Data Documentation

template<unsigned _Bytes>
_Atomic_flag_t _Atomic_impl< _Bytes >::_My_flag
mutableprivate

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