@@ -521,24 +521,6 @@ struct expr_type_map<power<F, Ints...>, Proj> {
521521 using type = power<Proj<F>, Ints...>;
522522};
523523
524- template <typename T, template <typename > typename Proj>
525- concept expr_type_projectable = (requires { typename Proj<T>; } ||
526- (is_specialization_of_power<T> && requires { typename Proj<typename T::factor>; }));
527-
528- template <typename T, template <typename > typename Proj>
529- constexpr bool expr_projectable_impl = false ;
530-
531- template <typename ... Ts, template <typename > typename Proj>
532- constexpr bool expr_projectable_impl<type_list<Ts...>, Proj> = (... && expr_type_projectable<Ts, Proj>);
533-
534- template <typename T, template <typename > typename Proj>
535- concept expr_projectable = requires {
536- typename T::_num_;
537- typename T::_den_;
538- requires expr_projectable_impl<typename T::_num_, Proj>;
539- requires expr_projectable_impl<typename T::_den_, Proj>;
540- };
541-
542524template <typename T>
543525[[nodiscard]] consteval auto map_power (T t)
544526{
@@ -552,8 +534,7 @@ template<typename T, auto... Ints>
552534}
553535
554536template <template <typename > typename Proj, template <typename ...> typename To, SymbolicArg OneType,
555- template <typename , typename > typename Pred, expr_type_projectable<Proj>... Nums,
556- expr_type_projectable<Proj>... Dens>
537+ template <typename , typename > typename Pred, typename ... Nums, typename ... Dens>
557538[[nodiscard]] consteval auto expr_map_impl (type_list<Nums...>, type_list<Dens...>)
558539{
559540 return (OneType{} * ... * map_power (typename expr_type_map<Nums, Proj>::type{})) /
@@ -570,7 +551,7 @@ template<template<typename> typename Proj, template<typename...> typename To, Sy
570551 * @tparam T expression template to map from
571552 */
572553template <template <typename > typename Proj, template <typename ...> typename To, SymbolicArg OneType,
573- template <typename , typename > typename Pred, expr_projectable<Proj> T>
554+ template <typename , typename > typename Pred, typename T>
574555[[nodiscard]] consteval auto expr_map (T)
575556{
576557 if constexpr (type_list_size<typename T::_num_> + type_list_size<typename T::_den_> == 0 )
0 commit comments