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_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_ _Value
Definition: corecrt_wstdlib.h:65
#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_ _Value
Definition: corecrt_wstdlib.h:65
#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:794
_In_ _Value
Definition: corecrt_wstdlib.h:65
#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:794
_In_ _Value
Definition: corecrt_wstdlib.h:65
#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:794
_In_ _Value
Definition: corecrt_wstdlib.h:65
#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:794
_In_ _Value
Definition: corecrt_wstdlib.h:65
#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:794
_In_ _Value
Definition: corecrt_wstdlib.h:65
#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:794
_In_ _Value
Definition: corecrt_wstdlib.h:65
#define _ATOMIC_UINT
Definition: xxatomic:14
#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:794
#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_ _Value
Definition: corecrt_wstdlib.h:65
#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
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
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
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
template<>
bool atomic_compare_exchange_strong ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
931  {
933  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
934  }
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_ _Value
Definition: corecrt_wstdlib.h:65
template<>
bool atomic_compare_exchange_strong ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
940  {
942  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
943  }
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_ _Value
Definition: corecrt_wstdlib.h:65
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:40
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
_In_ _Value
Definition: corecrt_wstdlib.h:65
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:40
_CRTIMP2_PURE short __CLRCALL_PURE_OR_CDECL _Exp(double *, double, short)
_In_ _Value
Definition: corecrt_wstdlib.h:65
template<>
bool atomic_compare_exchange_strong_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
949  {
951  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp,
952  _Value, _Order1, _Order2));
953  }
_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_ _Value
Definition: corecrt_wstdlib.h:65
template<>
bool atomic_compare_exchange_strong_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
959  {
961  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value, _Order1, _Order2));
962  }
_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_ _Value
Definition: corecrt_wstdlib.h:65
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
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
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
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
template<>
bool atomic_compare_exchange_weak ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
894  {
896  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
897  }
_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_ _Value
Definition: corecrt_wstdlib.h:65
template<>
bool atomic_compare_exchange_weak ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value 
)
inline
903  {
905  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value));
906  }
_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_ _Value
Definition: corecrt_wstdlib.h:65
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:33
_In_ _Value
Definition: corecrt_wstdlib.h:65
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:33
_In_ _Value
Definition: corecrt_wstdlib.h:65
template<>
bool atomic_compare_exchange_weak_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
912  {
914  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Exp,
915  _Value, _Order1, _Order2));
916  }
_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_ _Value
Definition: corecrt_wstdlib.h:65
template<>
bool atomic_compare_exchange_weak_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE _Exp,
_ITYPE  _Value,
memory_order  _Order1,
memory_order  _Order2 
)
inline
922  {
924  static_cast<_ATOMIC_ITYPE *>(_Atom), _Exp, _Value, _Order1, _Order2));
925  }
_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_ _Value
Definition: corecrt_wstdlib.h:65
_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
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
_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
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
template<>
_ITYPE atomic_exchange ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
861  {
862  return (atomic_exchange(
863  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Value));
864  }
_ITYPE atomic_exchange(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:560
_In_ _Value
Definition: corecrt_wstdlib.h:65
template<>
_ITYPE atomic_exchange ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
869  {
870  return (atomic_exchange(static_cast<_ATOMIC_ITYPE *>(_Atom), _Value));
871  }
_ITYPE atomic_exchange(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:560
_In_ _Value
Definition: corecrt_wstdlib.h:65
_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:29
_In_ _Value
Definition: corecrt_wstdlib.h:65
_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:29
_In_ _Value
Definition: corecrt_wstdlib.h:65
template<>
_ITYPE atomic_exchange_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
877  {
878  return (atomic_exchange_explicit(
879  static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Value, _Order));
880  }
_ITYPE atomic_exchange_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:546
_In_ _Value
Definition: corecrt_wstdlib.h:65
template<>
_ITYPE atomic_exchange_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
885  {
886  return (atomic_exchange_explicit(static_cast<_ATOMIC_ITYPE *>(_Atom),
887  _Value, _Order));
888  }
_ITYPE atomic_exchange_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:546
_In_ _Value
Definition: corecrt_wstdlib.h:65
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_ _Value
Definition: corecrt_wstdlib.h:65
#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_ _Value
Definition: corecrt_wstdlib.h:65
#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_ _Value
Definition: corecrt_wstdlib.h:65
#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_ _Value
Definition: corecrt_wstdlib.h:65
#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 (true);
446  }
bool atomic_is_lock_free ( const _ATOMIC_ITYPE )
inline
449  { // return true if operations on _ATOMIC_ITYPE are lock-free
450  return (true);
451  }
bool atomic_is_lock_free ( const volatile atomic< _ITYPE > *  _Atom)
inline
455  { // return true if operations on _ATOMIC_ITYPE are lock-free
456  return (true);
457  }
bool atomic_is_lock_free ( const atomic< _ITYPE > *  _Atom)
inline
460  { // return true if operations on _ATOMIC_ITYPE are lock-free
461  return (true);
462  }
_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:22
_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:22
template<>
_ITYPE atomic_load ( const volatile atomic< _ITYPE > *  _Atom)
inline
832  {
833  return (atomic_load(static_cast<const volatile _ATOMIC_ITYPE *>(_Atom)));
834  }
_ITYPE atomic_load(const volatile _ATOMIC_ITYPE *_Atom) _NOEXCEPT
Definition: xxatomic:534
template<>
_ITYPE atomic_load ( const atomic< _ITYPE > *  _Atom)
inline
838  {
839  return (atomic_load(static_cast<const volatile _ATOMIC_ITYPE *>(_Atom)));
840  }
_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:25
_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:25
template<>
_ITYPE atomic_load_explicit ( const volatile atomic< _ITYPE > *  _Atom,
memory_order  _Order 
)
inline
845  {
846  return (atomic_load_explicit(
847  static_cast<const volatile _ATOMIC_ITYPE *>(_Atom), _Order));
848  }
_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
853  {
854  return (atomic_load_explicit(
855  static_cast<const _ATOMIC_ITYPE *>(_Atom), _Order));
856  }
_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  }
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496
void atomic_store ( _ATOMIC_ITYPE _Atom,
_ITYPE  _Value 
)
inline
518  { // store _Value into *_Atom
520  }
_In_ _Value
Definition: corecrt_wstdlib.h:65
Definition: xatomic0.h:22
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496
template<>
void atomic_store ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
803  {
804  atomic_store(static_cast<volatile _ATOMIC_ITYPE *>(_Atom), _Value);
805  }
void atomic_store(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:510
_In_ _Value
Definition: corecrt_wstdlib.h:65
template<>
void atomic_store ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value 
)
inline
810  {
811  atomic_store(static_cast<_ATOMIC_ITYPE *>(_Atom), _Value);
812  }
void atomic_store(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value) _NOEXCEPT
Definition: xxatomic:510
_In_ _Value
Definition: corecrt_wstdlib.h:65
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:20
_In_ _Value
Definition: corecrt_wstdlib.h:65
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:20
_In_ _Value
Definition: corecrt_wstdlib.h:65
template<>
void atomic_store_explicit ( volatile atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
817  {
818  atomic_store_explicit(static_cast<volatile _ATOMIC_ITYPE *>(_Atom),
819  _Value, _Order);
820  }
_In_ _Value
Definition: corecrt_wstdlib.h:65
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496
template<>
void atomic_store_explicit ( atomic< _ITYPE > *  _Atom,
_ITYPE  _Value,
memory_order  _Order 
)
inline
825  {
826  atomic_store_explicit(static_cast<_ATOMIC_ITYPE *>(_Atom),
827  _Value, _Order);
828  }
_In_ _Value
Definition: corecrt_wstdlib.h:65
void atomic_store_explicit(volatile _ATOMIC_ITYPE *_Atom, _ITYPE _Value, memory_order _Order) _NOEXCEPT
Definition: xxatomic:496