mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-02 11:54:27 +02:00
Compilation issues fixed
This commit is contained in:
@@ -149,7 +149,7 @@ struct dimension_multiply;
|
|||||||
|
|
||||||
template<Exponent... E1, Exponent... E2>
|
template<Exponent... E1, Exponent... E2>
|
||||||
struct dimension_multiply<dimension<E1...>, dimension<E2...>> {
|
struct dimension_multiply<dimension<E1...>, dimension<E2...>> {
|
||||||
using type = upcasting_traits_t<merge_dimension_t<E1..., E2...>>;
|
using type = upcasting_traits_t<merge_dimension_t<dimension<E1...>, dimension<E2...>>>;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<Dimension D1, Dimension D2>
|
template<Dimension D1, Dimension D2>
|
||||||
@@ -159,9 +159,9 @@ using dimension_multiply_t = typename dimension_multiply<typename D1::base_type,
|
|||||||
Example implementation of `merge_dimension` may look like:
|
Example implementation of `merge_dimension` may look like:
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
template<Exponent... Es>
|
template<Dimension D1, Dimension D2>
|
||||||
struct merge_dimension {
|
struct merge_dimension {
|
||||||
using type = mp::type_list_sort_t<detail::dim_consolidate_t<mp::type_list_merge_sorted_t<dimension<Es...>, exp_dim_id_less>>, exp_greater_equal>;
|
using type = mp::type_list_sort_t<detail::dim_consolidate_t<mp::type_list_merge_sorted_t<D1, D2, exp_dim_id_less>>, exp_greater_equal>;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@@ -162,9 +162,9 @@ namespace units {
|
|||||||
template<Exponent... Es>
|
template<Exponent... Es>
|
||||||
using make_dimension_t = typename make_dimension<Es...>::type;
|
using make_dimension_t = typename make_dimension<Es...>::type;
|
||||||
|
|
||||||
template<Exponent... Es>
|
template<Dimension D1, Dimension D2>
|
||||||
struct merge_dimension {
|
struct merge_dimension {
|
||||||
using type = mp::type_list_sort_t<detail::dim_consolidate_t<mp::type_list_merge_sorted_t<dimension<Es...>, exp_dim_id_less>>, exp_greater_equal>;
|
using type = mp::type_list_sort_t<detail::dim_consolidate_t<mp::type_list_merge_sorted_t<D1, D2, exp_dim_id_less>>, exp_greater_equal>;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<Exponent... Es>
|
template<Exponent... Es>
|
||||||
@@ -176,7 +176,7 @@ namespace units {
|
|||||||
struct dimension_multiply;
|
struct dimension_multiply;
|
||||||
|
|
||||||
template<Exponent... E1, Exponent... E2>
|
template<Exponent... E1, Exponent... E2>
|
||||||
struct dimension_multiply<dimension<E1...>, dimension<E2...>> : std::type_identity<upcasting_traits_t<merge_dimension_t<E1..., E2...>>> {};
|
struct dimension_multiply<dimension<E1...>, dimension<E2...>> : std::type_identity<upcasting_traits_t<merge_dimension_t<dimension<E1...>, dimension<E2...>>>> {};
|
||||||
|
|
||||||
template<Dimension D1, Dimension D2>
|
template<Dimension D1, Dimension D2>
|
||||||
using dimension_multiply_t = typename dimension_multiply<typename D1::base_type, typename D2::base_type>::type;
|
using dimension_multiply_t = typename dimension_multiply<typename D1::base_type, typename D2::base_type>::type;
|
||||||
|
@@ -245,7 +245,7 @@ namespace units {
|
|||||||
|
|
||||||
template<Dimension D1, Unit U1, Number Rep1, Dimension D2, Unit U2, Number Rep2>
|
template<Dimension D1, Unit U1, Number Rep1, Dimension D2, Unit U2, Number Rep2>
|
||||||
requires treat_as_floating_point<std::common_type_t<Rep1, Rep2>> || std::ratio_multiply<typename U1::ratio, typename U2::ratio>::den == 1
|
requires treat_as_floating_point<std::common_type_t<Rep1, Rep2>> || std::ratio_multiply<typename U1::ratio, typename U2::ratio>::den == 1
|
||||||
[[nodiscard]] quantity<dimension_multiply_t<D1, D2>, upcasting_traits_t<unit<dimension_multiply_t<D1, D2>,
|
/* [[nodiscard]] */ quantity<dimension_multiply_t<D1, D2>, upcasting_traits_t<unit<dimension_multiply_t<D1, D2>,
|
||||||
std::ratio_multiply<typename U1::ratio, typename U2::ratio>>>,
|
std::ratio_multiply<typename U1::ratio, typename U2::ratio>>>,
|
||||||
std::common_type_t<Rep1, Rep2>>
|
std::common_type_t<Rep1, Rep2>>
|
||||||
constexpr operator*(const quantity<D1, U1, Rep1>& lhs,
|
constexpr operator*(const quantity<D1, U1, Rep1>& lhs,
|
||||||
@@ -287,7 +287,7 @@ namespace units {
|
|||||||
|
|
||||||
template<Dimension D1, Unit U1, Number Rep1, Dimension D2, Unit U2, Number Rep2>
|
template<Dimension D1, Unit U1, Number Rep1, Dimension D2, Unit U2, Number Rep2>
|
||||||
requires treat_as_floating_point<std::common_type_t<Rep1, Rep2>> || std::ratio_divide<typename U1::ratio, typename U2::ratio>::den == 1
|
requires treat_as_floating_point<std::common_type_t<Rep1, Rep2>> || std::ratio_divide<typename U1::ratio, typename U2::ratio>::den == 1
|
||||||
[[nodiscard]] quantity<dimension_divide_t<D1, D2>, upcasting_traits_t<unit<dimension_divide_t<D1, D2>, std::ratio_divide<typename U1::ratio, typename U2::ratio>>>, std::common_type_t<Rep1, Rep2>>
|
/* [[nodiscard]] */ quantity<dimension_divide_t<D1, D2>, upcasting_traits_t<unit<dimension_divide_t<D1, D2>, std::ratio_divide<typename U1::ratio, typename U2::ratio>>>, std::common_type_t<Rep1, Rep2>>
|
||||||
constexpr operator/(const quantity<D1, U1, Rep1>& lhs,
|
constexpr operator/(const quantity<D1, U1, Rep1>& lhs,
|
||||||
const quantity<D2, U2, Rep2>& rhs)
|
const quantity<D2, U2, Rep2>& rhs)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user