summaryrefslogtreecommitdiff
path: root/boost/atomic/detail/ops_emulated.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/atomic/detail/ops_emulated.hpp')
-rw-r--r--boost/atomic/detail/ops_emulated.hpp15
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