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

Public Member Functions

 _Atomic_impl ()
 
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
 

Constructor & Destructor Documentation

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

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
303  { // lock and compare/exchange
305  &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2);
306  }
_CRTIMP _In_ int _Value
Definition: setjmp.h:190
_Atomic_flag_t _My_flag
Definition: atomic:309
_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:2516
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
295  { // lock and compare/exchange
297  &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2);
298  }
_CRTIMP _In_ int _Value
Definition: setjmp.h:190
_Atomic_flag_t _My_flag
Definition: atomic:309
_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:2499
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Exchange ( void _Left,
void _Right,
memory_order  _Order 
) volatile
inline
288  { // lock and exchange
289  _Atomic_exchange(&_My_flag, _Bytes, _Left, _Right, _Order);
290  }
_Atomic_flag_t _My_flag
Definition: atomic:309
void _Atomic_exchange(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile void *_Src, memory_order _Order)
Definition: xatomic.h:2481
const _Ty & _Right
Definition: algorithm:4087
template<unsigned _Bytes>
bool _Atomic_impl< _Bytes >::_Is_lock_free ( ) const volatile
inline
272  { // operations that use locks are not lock-free
273  return false;
274  }
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Load ( void _Tgt,
const void _Src,
memory_order  _Order 
) const volatile
inline
283  { // lock and load
284  _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order);
285  }
_Atomic_flag_t _My_flag
Definition: atomic:309
void _Atomic_copy(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile const void *_Src, memory_order _Order)
Definition: xatomic.h:2471
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Store ( void _Tgt,
const void _Src,
memory_order  _Order 
) volatile
inline
277  { // lock and store
278  _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order);
279  }
_Atomic_flag_t _My_flag
Definition: atomic:309
void _Atomic_copy(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile const void *_Src, memory_order _Order)
Definition: xatomic.h:2471
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95

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: