1 #ifndef BOOST_ATOMIC_HPP 2 #define BOOST_ATOMIC_HPP 11 #include <boost/cstdint.hpp> 14 #if !defined(BOOST_ATOMIC_FORCE_FALLBACK) 18 #include <boost/type_traits/is_signed.hpp> 22 #ifndef BOOST_ATOMIC_CHAR_LOCK_FREE 23 #define BOOST_ATOMIC_CHAR_LOCK_FREE 0 26 #ifndef BOOST_ATOMIC_CHAR16_T_LOCK_FREE 27 #define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 0 30 #ifndef BOOST_ATOMIC_CHAR32_T_LOCK_FREE 31 #define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 0 34 #ifndef BOOST_ATOMIC_WCHAR_T_LOCK_FREE 35 #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0 38 #ifndef BOOST_ATOMIC_SHORT_LOCK_FREE 39 #define BOOST_ATOMIC_SHORT_LOCK_FREE 0 42 #ifndef BOOST_ATOMIC_INT_LOCK_FREE 43 #define BOOST_ATOMIC_INT_LOCK_FREE 0 46 #ifndef BOOST_ATOMIC_LONG_LOCK_FREE 47 #define BOOST_ATOMIC_LONG_LOCK_FREE 0 50 #ifndef BOOST_ATOMIC_LLONG_LOCK_FREE 51 #define BOOST_ATOMIC_LLONG_LOCK_FREE 0 54 #ifndef BOOST_ATOMIC_ADDRESS_LOCK_FREE 55 #define BOOST_ATOMIC_ADDRESS_LOCK_FREE 0 58 #ifndef BOOST_ATOMIC_BOOL_LOCK_FREE 59 #define BOOST_ATOMIC_BOOL_LOCK_FREE 0 62 #ifndef BOOST_ATOMIC_THREAD_FENCE 63 #define BOOST_ATOMIC_THREAD_FENCE 0 70 #ifndef BOOST_ATOMIC_SIGNAL_FENCE 71 #define BOOST_ATOMIC_SIGNAL_FENCE 0 91 return *
const_cast<atomic *
>(
this);
115 #ifdef BOOST_HAS_LONG_LONG 129 return v_.exchange(
true, order);
135 v_.store(
false, order);
atomic< int32_t > atomic_int32_t
atomic< unsigned long long > atomic_ullong
atomic< uint16_t > atomic_uint16_t
static void atomic_signal_fence(memory_order)
static void atomic_thread_fence(memory_order order)
bool test_and_set(memory_order order=memory_order_seq_cst)
atomic< uint64_t > atomic_uint64_t
atomic & operator=(value_type v) volatile
atomic< bool > atomic_bool
atomic< long long > atomic_llong
atomic< short > atomic_short
atomic< unsigned short > atomic_ushort
atomic(const value_type &v)
atomic< uint8_t > atomic_uint8_t
atomic< int64_t > atomic_int64_t
atomic< unsigned int > atomic_uint
atomic< unsigned char > atomic_uchar
atomic< int16_t > atomic_int16_t
atomic< uint32_t > atomic_uint32_t
atomic< long > atomic_long
void clear(memory_order order=memory_order_seq_cst) volatile
atomic< unsigned long > atomic_ulong
atomic< void * > atomic_address
atomic< signed char > atomic_schar
atomic< char > atomic_char
void operator=(const base_atomic &)
atomic< int8_t > atomic_int8_t