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
271  : _My_flag(0)
272  { // default constructor
273  }
_Atomic_flag_t _My_flag
Definition: atomic:313

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
307  { // lock and compare/exchange
309  &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2));
310  }
_Atomic_flag_t _My_flag
Definition: atomic:313
_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:2429
_In_ _Value
Definition: corecrt_wstdlib.h:65
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
299  { // lock and compare/exchange
301  &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2));
302  }
_Atomic_flag_t _My_flag
Definition: atomic:313
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
_In_ _Value
Definition: corecrt_wstdlib.h:65
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, memory_order)
Definition: xatomic.h:2412
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Exchange ( void _Left,
void _Right,
memory_order  _Order 
) volatile
inline
292  { // lock and exchange
293  _Atomic_exchange(&_My_flag, _Bytes, _Left, _Right, _Order);
294  }
constexpr const _Ty &() _Left
Definition: algorithm:3722
_Atomic_flag_t _My_flag
Definition: atomic:313
void _Atomic_exchange(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile void *_Src, memory_order)
Definition: xatomic.h:2394
constexpr const _Ty &() _Right
Definition: algorithm:3723
template<unsigned _Bytes>
bool _Atomic_impl< _Bytes >::_Is_lock_free ( ) const volatile
inline
276  { // operations that use locks are not lock-free
277  return (false);
278  }
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Load ( void _Tgt,
const void _Src,
memory_order  _Order 
) const volatile
inline
287  { // lock and load
288  _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order);
289  }
_Atomic_flag_t _My_flag
Definition: atomic:313
_In_ size_t _Out_opt_ int _In_z_ unsigned char const * _Src
Definition: mbstring.h:1039
void _Atomic_copy(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile const void *_Src, memory_order)
Definition: xatomic.h:2384
template<unsigned _Bytes>
void _Atomic_impl< _Bytes >::_Store ( void _Tgt,
const void _Src,
memory_order  _Order 
) volatile
inline
281  { // lock and store
282  _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order);
283  }
_Atomic_flag_t _My_flag
Definition: atomic:313
_In_ size_t _Out_opt_ int _In_z_ unsigned char const * _Src
Definition: mbstring.h:1039
void _Atomic_copy(volatile _Atomic_flag_t *_Flag, size_t _Size, volatile void *_Tgt, volatile const void *_Src, memory_order)
Definition: xatomic.h:2384

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: