STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Macros | Typedefs | Functions
xxatomic File Reference

Classes

struct  _ATOMIC_ITYPE
 
struct  atomic< _ITYPE >
 

Macros

#define _ATOMIC_UINT   _CONCAT(_CONCAT(_Uint, _ISIZE), _t)
 
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)   _CONCAT(name, _ISIZE)
 
#define _ATOMIC_LOCKING_PRIMITIVE_NAME(name)   _CONCAT(_CONCAT(name, _ISIZE), _locking)
 
#define _ATOMIC_IS_LOCK_FREE   _CONCAT(_Atomic_is_lock_free_, _ISIZE)
 
#define _ATOMIC_STORE(_Atom, _Value, _Order)
 
#define _ATOMIC_LOAD(_Atom, _Order)
 
#define _ATOMIC_EXCHANGE(_Atom, _Value, _Order)
 
#define _ATOMIC_COMPARE_EXCHANGE_WEAK(_Atom, _Expected, _Desired, _Order1, _Order2)
 
#define _ATOMIC_COMPARE_EXCHANGE_STRONG(_Atom, _Expected, _Desired, _Order1, _Order2)
 
#define _ATOMIC_FETCH_ADD(_Atom, _Value, _Order)
 
#define _ATOMIC_FETCH_SUB(_Atom, _Value, _Order)
 
#define _ATOMIC_FETCH_AND(_Atom, _Value, _Order)
 
#define _ATOMIC_FETCH_OR(_Atom, _Value, _Order)
 
#define _ATOMIC_FETCH_XOR(_Atom, _Value, _Order)
 
#define _HAS_CORRECTLY_ALIGNED_ATOMIC_SPECIALIZATIONS   1
 

Typedefs

typedef struct _ATOMIC_ITYPE _ATOMIC_ITYPE
 

Functions

bool atomic_is_lock_free (const volatile _ATOMIC_ITYPE *) _NOEXCEPT
 
bool atomic_is_lock_free (const _ATOMIC_ITYPE *) _NOEXCEPT
 
bool atomic_is_lock_free (const volatile atomic< _ITYPE > *) _NOEXCEPT
 
bool atomic_is_lock_free (const atomic< _ITYPE > *) _NOEXCEPT
 
void atomic_init (volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
 
void atomic_init (_ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
 
void atomic_init (volatile atomic< _ITYPE > *_Atom, _ITYPE _Value) _NOEXCEPT
 
void atomic_init (atomic< _ITYPE > *_Atom, _ITYPE _Value) _NOEXCEPT
 
void atomic_store_explicit (volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
void atomic_store_explicit (_ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
void atomic_store (volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
 
void atomic_store (_ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
 
_ITYPE atomic_load_explicit (const volatile _ATOMIC_ITYPE *_Atom, memory_order _Order) _NOEXCEPT
 
_ITYPE atomic_load_explicit (const _ATOMIC_ITYPE *_Atom, memory_order _Order) _NOEXCEPT
 
_ITYPE atomic_load (const volatile _ATOMIC_ITYPE *_Atom) _NOEXCEPT
 
_ITYPE atomic_load (const _ATOMIC_ITYPE *_Atom) _NOEXCEPT
 
_ITYPE atomic_exchange_explicit (volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
_ITYPE atomic_exchange_explicit (_ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
_ITYPE atomic_exchange (volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
 
_ITYPE atomic_exchange (_ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
 
bool atomic_compare_exchange_weak_explicit (volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 
bool atomic_compare_exchange_weak_explicit (_ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 
bool atomic_compare_exchange_weak (volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
bool atomic_compare_exchange_weak (_ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
bool atomic_compare_exchange_strong_explicit (volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 
bool atomic_compare_exchange_strong_explicit (_ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 
bool atomic_compare_exchange_strong (volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
bool atomic_compare_exchange_strong (_ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
template<>
void atomic_store (volatile atomic< _ITYPE > *_Atom, _ITYPE _Value) _NOEXCEPT
 
template<>
void atomic_store (atomic< _ITYPE > *_Atom, _ITYPE _Value) _NOEXCEPT
 
template<>
void atomic_store_explicit (volatile atomic< _ITYPE > *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
template<>
void atomic_store_explicit (atomic< _ITYPE > *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
template<>
_ITYPE atomic_load (const volatile atomic< _ITYPE > *_Atom) _NOEXCEPT
 
template<>
_ITYPE atomic_load (const atomic< _ITYPE > *_Atom) _NOEXCEPT
 
template<>
_ITYPE atomic_load_explicit (const volatile atomic< _ITYPE > *_Atom, memory_order _Order) _NOEXCEPT
 
template<>
_ITYPE atomic_load_explicit (const atomic< _ITYPE > *_Atom, memory_order _Order) _NOEXCEPT
 
template<>
_ITYPE atomic_exchange (volatile atomic< _ITYPE > *_Atom, _ITYPE _Value) _NOEXCEPT
 
template<>
_ITYPE atomic_exchange (atomic< _ITYPE > *_Atom, _ITYPE _Value) _NOEXCEPT
 
template<>
_ITYPE atomic_exchange_explicit (volatile atomic< _ITYPE > *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
template<>
_ITYPE atomic_exchange_explicit (atomic< _ITYPE > *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_weak (volatile atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_weak (atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_weak_explicit (volatile atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_weak_explicit (atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_strong (volatile atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_strong (atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_strong_explicit (volatile atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 
template<>
bool atomic_compare_exchange_strong_explicit (atomic< _ITYPE > *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
 

Macro Definition Documentation

#define _ATOMIC_COMPARE_EXCHANGE_STRONG (   _Atom,
  _Expected,
  _Desired,
  _Order1,
  _Order2 
)
Value:
_ATOMIC_LOCK_FREE_PRIMITIVE_NAME(_Atomic_compare_exchange_strong_) \
((_ATOMIC_UINT*)&_Atom->_My_val, \
(_ATOMIC_UINT*)_Expected, (_ATOMIC_UINT)_Value, \
_Order1, _Order2)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_COMPARE_EXCHANGE_WEAK (   _Atom,
  _Expected,
  _Desired,
  _Order1,
  _Order2 
)
Value:
_ATOMIC_LOCK_FREE_PRIMITIVE_NAME(_Atomic_compare_exchange_weak_) \
((_ATOMIC_UINT*)&_Atom->_My_val, \
(_ATOMIC_UINT*)_Expected, (_ATOMIC_UINT)_Value, \
_Order1, _Order2)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_EXCHANGE (   _Atom,
  _Value,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, (_ATOMIC_UINT)_Value, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
#define _ITYPE
Definition: atomic:791
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_FETCH_ADD (   _Atom,
  _Value,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, (_ATOMIC_UINT)_Value, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
#define _ITYPE
Definition: atomic:791
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_FETCH_AND (   _Atom,
  _Value,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, (_ATOMIC_UINT)_Value, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
#define _ITYPE
Definition: atomic:791
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_FETCH_OR (   _Atom,
  _Value,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, (_ATOMIC_UINT)_Value, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
#define _ITYPE
Definition: atomic:791
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_FETCH_SUB (   _Atom,
  _Value,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, (_ATOMIC_UINT)_Value, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
#define _ITYPE
Definition: atomic:791
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_FETCH_XOR (   _Atom,
  _Value,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, (_ATOMIC_UINT)_Value, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
#define _ITYPE
Definition: atomic:791
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_IS_LOCK_FREE   _CONCAT(_Atomic_is_lock_free_, _ISIZE)
#define _ATOMIC_LOAD (   _Atom,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
#define _ITYPE
Definition: atomic:791
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME (   name)    _CONCAT(name, _ISIZE)
#define _ATOMIC_LOCKING_PRIMITIVE_NAME (   name)    _CONCAT(_CONCAT(name, _ISIZE), _locking)
#define _ATOMIC_STORE (   _Atom,
  _Value,
  _Order 
)
Value:
((_ATOMIC_UINT*)&_Atom->_My_val, \
(_ATOMIC_UINT)_Value, _Order)
#define _ATOMIC_LOCK_FREE_PRIMITIVE_NAME(name)
Definition: xxatomic:15
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
#define _ATOMIC_UINT   _CONCAT(_CONCAT(_Uint, _ISIZE), _t)
#define _HAS_CORRECTLY_ALIGNED_ATOMIC_SPECIALIZATIONS   1

Typedef Documentation

typedef struct _ATOMIC_ITYPE _ATOMIC_ITYPE

Function Documentation

bool atomic_compare_exchange_strong ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
622  { // compare and exchange value stored in *_Atom with *_Exp, _Value
625  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_strong_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:604
Definition: xatomic0.h:21
_In_ int _Value
Definition: setjmp.h:173
bool atomic_compare_exchange_strong ( _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
629  { // compare and exchange value stored in *_Atom with *_Exp, _Value
632  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_strong_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:604
Definition: xatomic0.h:21
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_strong ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
929  {
931  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
932  }
bool atomic_compare_exchange_strong(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:620
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_strong ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
938  {
940  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
941  }
bool atomic_compare_exchange_strong(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:620
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
_In_ int _Value
Definition: setjmp.h:173
bool atomic_compare_exchange_strong_explicit ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
607  { // compare and exchange value stored in *_Atom with *_Exp, _Value
609  _Order1, _Order2));
610  }
#define _ATOMIC_COMPARE_EXCHANGE_STRONG(_Atom, _Expected, _Desired, _Order1, _Order2)
Definition: xxatomic:42
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
_In_ int _Value
Definition: setjmp.h:173
bool atomic_compare_exchange_strong_explicit ( _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
615  { // compare and exchange value stored in *_Atom with *_Exp, _Value
617  _Order1, _Order2));
618  }
#define _ATOMIC_COMPARE_EXCHANGE_STRONG(_Atom, _Expected, _Desired, _Order1, _Order2)
Definition: xxatomic:42
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_strong_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
947  {
949  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp,
950  _Value, _Order1, _Order2));
951  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_strong_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:604
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_strong_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
957  {
959  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value, _Order1, _Order2));
960  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_strong_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:604
_In_ int _Value
Definition: setjmp.h:173
bool atomic_compare_exchange_weak ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
591  { // compare and exchange value stored in *_Atom with *_Exp, _Value
594  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_weak_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:572
Definition: xatomic0.h:21
_In_ int _Value
Definition: setjmp.h:173
bool atomic_compare_exchange_weak ( _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
599  { // compare and exchange value stored in *_Atom with *_Exp, _Value
602  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_weak_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:572
Definition: xatomic0.h:21
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_weak ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
892  {
894  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
895  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_weak(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:588
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_weak ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
901  {
903  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
904  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_weak(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:588
_In_ int _Value
Definition: setjmp.h:173
bool atomic_compare_exchange_weak_explicit ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
575  { // compare and exchange value stored in *_Atom with *_Exp, _Value
576  return (_ATOMIC_COMPARE_EXCHANGE_WEAK(_Atom, _Exp, _Value,
577  _Order1, _Order2));
578  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
#define _ATOMIC_COMPARE_EXCHANGE_WEAK(_Atom, _Expected, _Desired, _Order1, _Order2)
Definition: xxatomic:35
_In_ int _Value
Definition: setjmp.h:173
bool atomic_compare_exchange_weak_explicit ( _ATOMIC_ITYPE _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
583  { // compare and exchange value stored in *_Atom with *_Exp, _Value
584  return (_ATOMIC_COMPARE_EXCHANGE_WEAK(_Atom, _Exp, _Value,
585  _Order1, _Order2));
586  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
#define _ATOMIC_COMPARE_EXCHANGE_WEAK(_Atom, _Expected, _Desired, _Order1, _Order2)
Definition: xxatomic:35
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_weak_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
910  {
912  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp,
913  _Value, _Order1, _Order2));
914  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_weak_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:572
_In_ int _Value
Definition: setjmp.h:173
template<>
bool atomic_compare_exchange_weak_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
920  {
922  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value, _Order1, _Order2));
923  }
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
bool atomic_compare_exchange_weak_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE *_Exp, _ITYPE _Value, memory_order _Order1, memory_order _Order2) _NOEXCEPT
Definition: xxatomic:572
_In_ int _Value
Definition: setjmp.h:173
_ITYPE atomic_exchange ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE  _Value 
)
inline
562  { // exchange value stored in *_Atom with _Value
564  }
_ITYPE atomic_exchange_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:546
Definition: xatomic0.h:21
_In_ int _Value
Definition: setjmp.h:173
_ITYPE atomic_exchange ( _ATOMIC_ITYPE _Atom,
_ITYPE  _Value 
)
inline
568  { // exchange value stored in *_Atom with _Value
570  }
_ITYPE atomic_exchange_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:546
Definition: xatomic0.h:21
_In_ int _Value
Definition: setjmp.h:173
template<>
_ITYPE atomic_exchange ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
859  {
860  return (atomic_exchange(
861  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Value));
862  }
_ITYPE atomic_exchange(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:560
_In_ int _Value
Definition: setjmp.h:173
template<>
_ITYPE atomic_exchange ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
867  {
868  return (atomic_exchange(static_cast<_ATOMIC_ITYPE *>(_Atom), _Value));
869  }
_ITYPE atomic_exchange(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:560
_In_ int _Value
Definition: setjmp.h:173
_ITYPE atomic_exchange_explicit ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
549  { // exchange value stored in *_Atom with _Value
550  return (_ATOMIC_EXCHANGE(_Atom, _Value, _Order));
551  }
#define _ATOMIC_EXCHANGE(_Atom, _Value, _Order)
Definition: xxatomic:31
_In_ int _Value
Definition: setjmp.h:173
_ITYPE atomic_exchange_explicit ( _ATOMIC_ITYPE _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
556  { // exchange value stored in *_Atom with _Value
557  return (_ATOMIC_EXCHANGE(_Atom, _Value, _Order));
558  }
#define _ATOMIC_EXCHANGE(_Atom, _Value, _Order)
Definition: xxatomic:31
_In_ int _Value
Definition: setjmp.h:173
template<>
_ITYPE atomic_exchange_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
875  {
876  return (atomic_exchange_explicit(
877  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Value, _Order));
878  }
_ITYPE atomic_exchange_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:546
_In_ int _Value
Definition: setjmp.h:173
template<>
_ITYPE atomic_exchange_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
883  {
884  return (atomic_exchange_explicit(static_cast<_ATOMIC_ITYPE *>(_Atom),
885  _Value, _Order));
886  }
_ITYPE atomic_exchange_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:546
_In_ int _Value
Definition: setjmp.h:173
void atomic_init ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE  _Value 
)
inline
468  { // non-atomically initialize *_Atom to _Value
469  _Atom->_My_val = (_ATOMIC_UINT)_Value;
470 
471  }
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
void atomic_init ( _ATOMIC_ITYPE _Atom,
_ITYPE  _Value 
)
inline
475  { // non-atomically initialize *_Atom to _Value
476  _Atom->_My_val = (_ATOMIC_UINT)_Value;
477 
478  }
_ATOMIC_UINT _My_val
Definition: xxatomic:169
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
void atomic_init ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
483  { // non-atomically initialize *_Atom to _Value
484  _Atom->_My_val = (_ATOMIC_UINT)_Value;
485 
486  }
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
void atomic_init ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
490  { // non-atomically initialize *_Atom to _Value
491  _Atom->_My_val = (_ATOMIC_UINT)_Value;
492 
493  }
_ATOMIC_UINT _My_val
Definition: xxatomic:169
_In_ int _Value
Definition: setjmp.h:173
#define _ATOMIC_UINT
Definition: xxatomic:14
bool atomic_is_lock_free ( const volatile _ATOMIC_ITYPE )
inline
444  { // return true if operations on _ATOMIC_ITYPE are lock-free
445  return (_ATOMIC_IS_LOCK_FREE());
446  }
#define _ATOMIC_IS_LOCK_FREE
Definition: xxatomic:20
bool atomic_is_lock_free ( const _ATOMIC_ITYPE )
inline
449  { // return true if operations on _ATOMIC_ITYPE are lock-free
450  return (_ATOMIC_IS_LOCK_FREE());
451  }
#define _ATOMIC_IS_LOCK_FREE
Definition: xxatomic:20
bool atomic_is_lock_free ( const volatile atomic< _ITYPE > *  _Atom)
inline
455  { // return true if operations on _ATOMIC_ITYPE are lock-free
456  return (_ATOMIC_IS_LOCK_FREE());
457  }
#define _ATOMIC_IS_LOCK_FREE
Definition: xxatomic:20
bool atomic_is_lock_free ( const atomic< _ITYPE > *  _Atom)
inline
460  { // return true if operations on _ATOMIC_ITYPE are lock-free
461  return (_ATOMIC_IS_LOCK_FREE());
462  }
#define _ATOMIC_IS_LOCK_FREE
Definition: xxatomic:20
_ITYPE atomic_load ( const volatile _ATOMIC_ITYPE _Atom)
inline
536  { // return value stored in *_Atom
538  }
_ITYPE atomic_load_explicit(const volatile _ATOMIC_ITYPE *_Atom, memory_order _Order) _NOEXCEPT
Definition: xxatomic:522
Definition: xatomic0.h:21
_ITYPE atomic_load ( const _ATOMIC_ITYPE _Atom)
inline
542  { // return value stored in *_Atom
544  }
_ITYPE atomic_load_explicit(const volatile _ATOMIC_ITYPE *_Atom, memory_order _Order) _NOEXCEPT
Definition: xxatomic:522
Definition: xatomic0.h:21
template<>
_ITYPE atomic_load ( const volatile atomic< _ITYPE > *  _Atom)
inline
830  {
831  return (atomic_load(static_cast<const volatile _ATOMIC_ITYPE *>(_Atom)));
832  }
_ITYPE atomic_load(const volatile _ATOMIC_ITYPE *_Atom) _NOEXCEPT
Definition: xxatomic:534
template<>
_ITYPE atomic_load ( const atomic< _ITYPE > *  _Atom)
inline
836  {
837  return (atomic_load(static_cast<const volatile _ATOMIC_ITYPE *>(_Atom)));
838  }
_ITYPE atomic_load(const volatile _ATOMIC_ITYPE *_Atom) _NOEXCEPT
Definition: xxatomic:534
_ITYPE atomic_load_explicit ( const volatile _ATOMIC_ITYPE _Atom,
memory_order  _Order 
)
inline
524  { // return value held in *_Atom
525  return (_ATOMIC_LOAD(_Atom, _Order));
526  }
#define _ATOMIC_LOAD(_Atom, _Order)
Definition: xxatomic:27
_ITYPE atomic_load_explicit ( const _ATOMIC_ITYPE _Atom,
memory_order  _Order 
)
inline
530  { // return value held in *_Atom
531  return (_ATOMIC_LOAD(_Atom, _Order));
532  }
#define _ATOMIC_LOAD(_Atom, _Order)
Definition: xxatomic:27
template<>
_ITYPE atomic_load_explicit ( const volatile atomic< _ITYPE > *  _Atom,
memory_order  _Order 
)
inline
843  {
844  return (atomic_load_explicit(
845  static_cast<const volatile _ATOMIC_ITYPE *>(_Atom), _Order));
846  }
_ITYPE atomic_load_explicit(const volatile _ATOMIC_ITYPE *_Atom, memory_order _Order) _NOEXCEPT
Definition: xxatomic:522
template<>
_ITYPE atomic_load_explicit ( const atomic< _ITYPE > *  _Atom,
memory_order  _Order 
)
inline
851  {
852  return (atomic_load_explicit(
853  static_cast<const _ATOMIC_ITYPE *>(_Atom), _Order));
854  }
_ITYPE atomic_load_explicit(const volatile _ATOMIC_ITYPE *_Atom, memory_order _Order) _NOEXCEPT
Definition: xxatomic:522
void atomic_store ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE  _Value 
)
inline
512  { // store _Value into *_Atom
514  }
Definition: xatomic0.h:21
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496
_In_ int _Value
Definition: setjmp.h:173
void atomic_store ( _ATOMIC_ITYPE _Atom,
_ITYPE  _Value 
)
inline
518  { // store _Value into *_Atom
520  }
Definition: xatomic0.h:21
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496
_In_ int _Value
Definition: setjmp.h:173
template<>
void atomic_store ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
801  {
802  atomic_store(static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Value);
803  }
void atomic_store(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:510
_In_ int _Value
Definition: setjmp.h:173
template<>
void atomic_store ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
808  {
809  atomic_store(static_cast<_ATOMIC_ITYPE *>(_Atom), _Value);
810  }
void atomic_store(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:510
_In_ int _Value
Definition: setjmp.h:173
void atomic_store_explicit ( volatile _ATOMIC_ITYPE _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
499  { // store _Value into *_Atom
500  _ATOMIC_STORE(_Atom, _Value, _Order);
501  }
#define _ATOMIC_STORE(_Atom, _Value, _Order)
Definition: xxatomic:22
_In_ int _Value
Definition: setjmp.h:173
void atomic_store_explicit ( _ATOMIC_ITYPE _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
506  { // store _Value into *_Atom
507  _ATOMIC_STORE(_Atom, _Value, _Order);
508  }
#define _ATOMIC_STORE(_Atom, _Value, _Order)
Definition: xxatomic:22
_In_ int _Value
Definition: setjmp.h:173
template<>
void atomic_store_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
815  {
816  atomic_store_explicit(static_cast<volatile _ATOMIC_ITYPE *>(_Atom),
817  _Value, _Order);
818  }
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496
_In_ int _Value
Definition: setjmp.h:173
template<>
void atomic_store_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
823  {
824  atomic_store_explicit(static_cast<_ATOMIC_ITYPE *>(_Atom),
825  _Value, _Order);
826  }
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496
_In_ int _Value
Definition: setjmp.h:173