diff --git a/src/core/include/mp-units/framework/expression_template.h b/src/core/include/mp-units/framework/expression_template.h index 38dd14d3..7853a03b 100644 --- a/src/core/include/mp-units/framework/expression_template.h +++ b/src/core/include/mp-units/framework/expression_template.h @@ -521,24 +521,6 @@ struct expr_type_map, Proj> { using type = power, Ints...>; }; -template typename Proj> -concept expr_type_projectable = (requires { typename Proj; } || - (is_specialization_of_power && requires { typename Proj; })); - -template typename Proj> -constexpr bool expr_projectable_impl = false; - -template typename Proj> -constexpr bool expr_projectable_impl, Proj> = (... && expr_type_projectable); - -template typename Proj> -concept expr_projectable = requires { - typename T::_num_; - typename T::_den_; - requires expr_projectable_impl; - requires expr_projectable_impl; -}; - template [[nodiscard]] consteval auto map_power(T t) { @@ -552,8 +534,7 @@ template } template typename Proj, template typename To, SymbolicArg OneType, - template typename Pred, expr_type_projectable... Nums, - expr_type_projectable... Dens> + template typename Pred, typename... Nums, typename... Dens> [[nodiscard]] consteval auto expr_map_impl(type_list, type_list) { return (OneType{} * ... * map_power(typename expr_type_map::type{})) / @@ -570,7 +551,7 @@ template typename Proj, template typename To, Sy * @tparam T expression template to map from */ template typename Proj, template typename To, SymbolicArg OneType, - template typename Pred, expr_projectable T> + template typename Pred, typename T> [[nodiscard]] consteval auto expr_map(T) { if constexpr (type_list_size + type_list_size == 0)