mirror of
https://github.com/mpusz/mp-units.git
synced 2025-07-30 02:17:16 +02:00
std::conditional_t replaced with custom implementation
This commit is contained in:
@ -141,14 +141,13 @@ namespace units {
|
||||
template<Exponent E1, Exponent... ERest>
|
||||
struct dim_consolidate<dimension<E1, ERest...>> {
|
||||
using rest = dim_consolidate_t<dimension<ERest...>>;
|
||||
using type =
|
||||
std::conditional_t<std::is_same_v<rest, dimension<>>, dimension<E1>, type_list_push_front<rest, E1>>;
|
||||
using type = conditional<std::is_same_v<rest, dimension<>>, dimension<E1>, type_list_push_front<rest, E1>>;
|
||||
};
|
||||
|
||||
template<typename D, int V1, int V2, Exponent... ERest>
|
||||
struct dim_consolidate<dimension<exp<D, V1>, exp<D, V2>, ERest...>> {
|
||||
using type = std::conditional_t<V1 + V2 == 0, dim_consolidate_t<dimension<ERest...>>,
|
||||
dim_consolidate_t<dimension<exp<D, V1 + V2>, ERest...>>>;
|
||||
using type = conditional<V1 + V2 == 0, dim_consolidate_t<dimension<ERest...>>,
|
||||
dim_consolidate_t<dimension<exp<D, V1 + V2>, ERest...>>>;
|
||||
};
|
||||
|
||||
} // namespace detail
|
||||
|
@ -74,8 +74,8 @@ namespace units {
|
||||
template<typename BaseDimension, Unit U, Unit... Rest>
|
||||
struct get_ratio<BaseDimension, U, Rest...> {
|
||||
using unit_base_dim = get_unit_base_dim<typename U::dimension::base_type>::dimension;
|
||||
using ratio = std::conditional_t<unit_base_dim::value == BaseDimension::value, typename U::ratio,
|
||||
typename get_ratio<BaseDimension, Rest...>::ratio>;
|
||||
using ratio = conditional<unit_base_dim::value == BaseDimension::value, typename U::ratio,
|
||||
typename get_ratio<BaseDimension, Rest...>::ratio>;
|
||||
};
|
||||
|
||||
template<Ratio Result, int UnitExpValue, Ratio UnitRatio>
|
||||
@ -88,8 +88,8 @@ namespace units {
|
||||
|
||||
template<Ratio Result, int UnitExpValue, Ratio UnitRatio>
|
||||
struct ratio_op {
|
||||
using calc_ratio = std::conditional_t<(UnitExpValue > 0), ratio_multiply<Result, UnitRatio>,
|
||||
ratio_divide<Result, UnitRatio>>;
|
||||
using calc_ratio = conditional<(UnitExpValue > 0), ratio_multiply<Result, UnitRatio>,
|
||||
ratio_divide<Result, UnitRatio>>;
|
||||
static constexpr int value = UnitExpValue > 0 ? UnitExpValue - 1 : UnitExpValue + 1;
|
||||
using ratio = ratio_op<calc_ratio, value, UnitRatio>::ratio;
|
||||
};
|
||||
|
Reference in New Issue
Block a user