Lines Matching refs:T
35 …static_assert(std::is_pod< Atomic32Base<T> >::value == true, "Atomic32Base must be a POD (plain ol…
36 static_assert(sizeof(T) == sizeof(int32), "Atomic32Base, type T must be equal size as int32"); \
40 …static_assert(std::is_pod< AtomicPtrBase<T> >::value == true, "AtomicPtrBase must be a POD (plain …
75 template<typename T>
78 T _value;
81 T AddFetch(T sum) in AddFetch()
85 T tmp = _InterlockedExchangeAdd((volatile long*)&_value, sum) + sum; in AddFetch()
91 T IncFetch() in IncFetch()
95 T tmp = _InterlockedIncrement((volatile long*)&_value); in IncFetch()
101 T DecFetch() in DecFetch()
105 T tmp = _InterlockedDecrement((volatile long*)&_value); in DecFetch()
110 T Load() const in Load()
113 T tmp = LoadRelaxed(); in Load()
118 void Store(T val) in Store()
126 T Exchange(T val) in Exchange()
130 T tmp = _InterlockedExchange((volatile long*)&_value, val); in Exchange()
136 T CompareAndSwap(T compareValue, T newValue) in CompareAndSwap()
140 T tmp = _InterlockedCompareExchange((volatile long*)&_value, newValue, compareValue); in CompareAndSwap()
146 T LoadRelaxed() const in LoadRelaxed()
153 void StoreRelaxed(T val) in StoreRelaxed()
171 template<typename T>
174 T* _value;
176 T* Load() const in Load()
179 T* tmp = LoadRelaxed(); in Load()
184 void Store(const T* val) in Store()
192 T* Exchange(const T* val) in Exchange()
198 T* tmp = (T*)_InterlockedExchange((volatile long*)&_value, (long)val); in Exchange()
200 T* tmp = (T*)_InterlockedExchangePointer((void* volatile*)&_value, (void*)val); in Exchange()
207 T* CompareAndSwap(const T* compareValue, const T* newValue) in CompareAndSwap()
213 …T* tmp = (T*)_InterlockedCompareExchange((volatile long*)&_value, (long)newValue, (long)compareVal… in CompareAndSwap()
215 …T* tmp = (T*)_InterlockedCompareExchangePointer((void* volatile*)&_value, (void*)newValue, (void*)… in CompareAndSwap()
222 T* LoadRelaxed() const in LoadRelaxed()
229 void StoreRelaxed(const T* val) in StoreRelaxed()
232 _value = (T*)val; in StoreRelaxed()