diff --git a/register/Field.h b/register/Field.h index a5be8b1..0c283b9 100644 --- a/register/Field.h +++ b/register/Field.h @@ -79,14 +79,11 @@ namespace cppreg { * This is only used for the template form of the write method. */ template - struct check_overflow { - constexpr static const bool result = - internals::check_overflow< - parent_register::size, - value, - (mask >> offset) - >::result::value; - }; + struct check_overflow : internals::check_overflow< + parent_register::size, + value, + (mask >> offset) + > {}; //!@ Field read method. /** @@ -147,7 +144,7 @@ namespace cppreg { typename std::enable_if< !has_shadow && - check_overflow::result, + check_overflow::value, T >::type write() noexcept { @@ -168,7 +165,7 @@ namespace cppreg { typename std::enable_if< has_shadow && - check_overflow::result, + check_overflow::value, T >::type write() noexcept { diff --git a/register/MergeWrite.h b/register/MergeWrite.h index 49b0fc2..93963c6 100644 --- a/register/MergeWrite.h +++ b/register/MergeWrite.h @@ -131,7 +131,7 @@ namespace cppreg { typename std::enable_if< (internals::check_overflow< Register::size, new_value, (F::mask >> F::offset) - >::result::value), + >::value), T >::type&& with() const && noexcept { diff --git a/register/Overflow.h b/register/Overflow.h index 1f147e6..b5ba809 100644 --- a/register/Overflow.h +++ b/register/Overflow.h @@ -34,10 +34,7 @@ namespace internals { typename RegisterType::type value, typename RegisterType::type limit > - struct check_overflow { - using result = - typename std::integral_constant::type; - }; + struct check_overflow : std::integral_constant {}; } diff --git a/register/Register.h b/register/Register.h index 63f0651..b5486fb 100644 --- a/register/Register.h +++ b/register/Register.h @@ -110,7 +110,7 @@ namespace cppreg { typename std::enable_if< internals::check_overflow< size, value, (F::mask >> F::offset) - >::result::value, + >::value, T >::type&& merge_write() noexcept {