diff --git a/include/eve/arch/cpu/logical_wide.hpp b/include/eve/arch/cpu/logical_wide.hpp index 5891626f56..8997701196 100644 --- a/include/eve/arch/cpu/logical_wide.hpp +++ b/include/eve/arch/cpu/logical_wide.hpp @@ -82,7 +82,9 @@ namespace eve using combined_type = logical>; //! Type representing a logical wide of the same type but with a cardinal half the size - using split_type = logical::split_type>; + template + requires (N::Value > 1) + using split_type = logical::split_type>; //! @brief Generates a eve::wide from a different type `T` and cardinal `N`. //! If unspecified, `N` is computed as `expected_cardinal_t`. diff --git a/include/eve/arch/cpu/wide.hpp b/include/eve/arch/cpu/wide.hpp index 53b806ebdd..d889ddf535 100644 --- a/include/eve/arch/cpu/wide.hpp +++ b/include/eve/arch/cpu/wide.hpp @@ -68,16 +68,6 @@ namespace eve struct EVE_MAY_ALIAS wide : detail::wide_storage>> { - private: - // split_type does not exist on cardinals of size 1 - // this function returns a void_t if the split_type does not exist - template - static constexpr auto get_split_type() noexcept - { - if constexpr (N::value > 1) return wide{}; - } - - public: using storage_base = detail::wide_storage>>; //! The type stored in the register. @@ -102,7 +92,9 @@ namespace eve using combined_type = wide; //! Type representing a wide of the same type but with a cardinal half the size - using split_type = decltype(get_split_type()); + template + requires (N::Value > 1) + using split_type = wide; //! @brief Generates a eve::wide from a different type `T` and cardinal `N`. //! If unspecified, `N` is computed as `expected_cardinal_t`.