diff --git a/single/cppreg-all.h b/single/cppreg-all.h index 8817452..eb3e2a7 100644 --- a/single/cppreg-all.h +++ b/single/cppreg-all.h @@ -167,10 +167,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 {}; } } #endif @@ -263,7 +260,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 { @@ -372,7 +369,7 @@ namespace cppreg { typename std::enable_if< internals::check_overflow< size, value, (F::mask >> F::offset) - >::result::value, + >::value, T >::type&& merge_write() noexcept { @@ -446,30 +443,47 @@ namespace cppreg { static_assert(( (BitOffset % RegWidth) == 0 && - (RegisterPack::pack_address % (RegWidth / 8u) == 0) + (RegisterPack::pack_base % (RegWidth / 8u) == 0) ), "register mis-alignment with respect to pack base"); }; template struct PackIndexing { + using tuple_t = typename std::tuple; template - using regs = typename std::tuple_element>::type; + using regs = typename std::tuple_element::type; }; template struct for_loop { - template