forked from mpusz/mp-units
fix: factor out requires-expression to concept for MSVC
This commit is contained in:
committed by
Mateusz Pusz
parent
80eefec97c
commit
8312b6e463
@@ -83,12 +83,15 @@ struct equivalent_unit : std::disjunction<equivalent_impl<U1, U2>,
|
|||||||
|
|
||||||
// point origins
|
// point origins
|
||||||
|
|
||||||
|
template<typename T, typename U>
|
||||||
|
concept EquivalentPointOrigins =
|
||||||
|
RebindablePointOriginFor<T, typename U::dimension> && RebindablePointOriginFor<U, typename T::dimension> &&
|
||||||
|
std::same_as<T, rebind_point_origin_dimension<U, typename T::dimension>> &&
|
||||||
|
std::same_as<U, rebind_point_origin_dimension<T, typename U::dimension>>;
|
||||||
|
|
||||||
template<PointOrigin T, PointOrigin U>
|
template<PointOrigin T, PointOrigin U>
|
||||||
struct equivalent_impl<T, U> : std::bool_constant<requires { // TODO: Simplify when Clang catches up.
|
struct equivalent_impl<T, U> : std::bool_constant<
|
||||||
requires RebindablePointOriginFor<T, typename U::dimension> && RebindablePointOriginFor<U, typename T::dimension> &&
|
EquivalentPointOrigins<T, U> && equivalent_impl<typename T::dimension, typename U::dimension>::value> {};
|
||||||
std::same_as<T, rebind_point_origin_dimension<U, typename T::dimension>> &&
|
|
||||||
std::same_as<U, rebind_point_origin_dimension<T, typename U::dimension>>;
|
|
||||||
} && equivalent_impl<typename T::dimension, typename U::dimension>::value> {};
|
|
||||||
|
|
||||||
|
|
||||||
// (point) kinds
|
// (point) kinds
|
||||||
|
Reference in New Issue
Block a user