diff options
Diffstat (limited to 'boost/atomic/detail/ops_emulated.hpp')
-rw-r--r-- | boost/atomic/detail/ops_emulated.hpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/boost/atomic/detail/ops_emulated.hpp b/boost/atomic/detail/ops_emulated.hpp index 437b62f311..f30fbdab9f 100644 --- a/boost/atomic/detail/ops_emulated.hpp +++ b/boost/atomic/detail/ops_emulated.hpp @@ -30,10 +30,15 @@ namespace boost { namespace atomics { namespace detail { -template< typename T > +template< std::size_t Size, bool Signed > struct emulated_operations { - typedef T storage_type; + typedef typename make_storage_type< Size >::type storage_type; + typedef typename make_storage_type< Size >::aligned aligned_storage_type; + + static BOOST_CONSTEXPR_OR_CONST std::size_t storage_size = Size; + static BOOST_CONSTEXPR_OR_CONST bool is_signed = Signed; + static BOOST_CONSTEXPR_OR_CONST bool full_cas_based = false; static BOOST_CONSTEXPR_OR_CONST bool is_always_lock_free = false; @@ -146,12 +151,8 @@ struct emulated_operations template< std::size_t Size, bool Signed > struct operations : - public emulated_operations< typename make_storage_type< Size, Signed >::type > + public emulated_operations< Size, Signed > { - typedef typename make_storage_type< Size, Signed >::aligned aligned_storage_type; - - static BOOST_CONSTEXPR_OR_CONST std::size_t storage_size = Size; - static BOOST_CONSTEXPR_OR_CONST bool is_signed = Signed; }; } // namespace detail |