2 #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_STD_ATOMIC_HPP_INCLUDED
3 #define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_STD_ATOMIC_HPP_INCLUDED
7 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
20 #define BOOST_CORE_TYPEID(T) typeid(T)
21 #define BOOST_SP_TYPEID(T) typeid(T)
22 #define BOOST_CONSTEXPR constexpr
34 pw->fetch_add( 1, std::memory_order_relaxed );
39 return pw->fetch_sub( 1, std::memory_order_acq_rel );
48 std::int_least32_t r = pw->load( std::memory_order_relaxed );
57 if( pw->compare_exchange_weak( r, r + 1, std::memory_order_relaxed, std::memory_order_relaxed ) )
134 return use_count_.load( std::memory_order_acquire );
142 #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_STD_ATOMIC_HPP_INCLUDED