dim_invert and dim_consolidate cleanup

This commit is contained in:
Mateusz Pusz
2019-09-18 06:37:30 -06:00
parent 32a65a7405
commit 3fcb7c9e91

View File

@@ -150,7 +150,7 @@ namespace std::experimental::units {
struct dim_invert<dimension<Es...>> : std::type_identity<downcasting_traits_t<dimension<exp_invert_t<Es>...>>> {};
template<Dimension D>
using dim_invert_t = dim_invert<typename D::base_type>::type;
using dim_invert_t = dim_invert<downcast_from<D>>::type;
// todo: force as the only user interface to create dimensions through modules
@@ -176,8 +176,7 @@ namespace std::experimental::units {
template<typename E1, typename... ERest>
struct dim_consolidate<dimension<E1, ERest...>> {
using rest = dim_consolidate_t<dimension<ERest...>>;
using type = conditional<std::is_same_v<rest, dimension<>>, dimension<E1>, type_list_push_front<rest, E1>>;
using type = type_list_push_front<dim_consolidate_t<dimension<ERest...>>, E1>;
};
template<BaseDimension D, int Num1, int Den1, int Num2, int Den2, typename... ERest>