diff --git a/src/core/include/mp-units/framework/symbolic_expression.h b/src/core/include/mp-units/framework/symbolic_expression.h index 884ea11f..fc965a45 100644 --- a/src/core/include/mp-units/framework/symbolic_expression.h +++ b/src/core/include/mp-units/framework/symbolic_expression.h @@ -308,19 +308,23 @@ struct expr_simplify, NRest...>, type_list typename Pred> +template typename Pred> struct expr_less_impl : Pred, expr_type> {}; -template typename Pred> +template typename Pred> struct expr_less_impl, Pred> : std::true_type {}; +template typename Pred> +struct expr_less_impl, power, Pred> : + std::bool_constant {}; + /** * @brief Compares two types with a given predicate * * Algorithm accounts not only for explicit types but also for the case when they * are wrapped within `power`. */ -template typename Pred> +template typename Pred> using expr_less = expr_less_impl; template