mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-02 11:54:27 +02:00
Concepts definition fixed
This commit is contained in:
@@ -29,14 +29,14 @@ namespace mp {
|
|||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
template<class T, class U>
|
template<class T, class U>
|
||||||
bool concept SameHelper = std::is_same_v<T, U>;
|
concept bool SameHelper = std::is_same_v<T, U>;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T, class U>
|
template<class T, class U>
|
||||||
bool concept Same = detail::SameHelper<T, U> && detail::SameHelper<U, T>;
|
concept bool Same = detail::SameHelper<T, U> && detail::SameHelper<U, T>;
|
||||||
|
|
||||||
template <class From, class To>
|
template <class From, class To>
|
||||||
bool concept ConvertibleTo = std::is_convertible_v<From, To> &&
|
concept bool ConvertibleTo = std::is_convertible_v<From, To> &&
|
||||||
requires(From (&f)()) {
|
requires(From (&f)()) {
|
||||||
static_cast<To>(f());
|
static_cast<To>(f());
|
||||||
};
|
};
|
||||||
|
@@ -69,7 +69,7 @@ namespace mp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
bool concept Ratio = detail::is_ratio<T>::value;
|
concept bool Ratio = detail::is_ratio<T>::value;
|
||||||
|
|
||||||
// common_ratio
|
// common_ratio
|
||||||
|
|
||||||
|
@@ -58,7 +58,7 @@ namespace units {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
bool concept Exponent = detail::is_exp<T>::value;
|
concept bool Exponent = detail::is_exp<T>::value;
|
||||||
|
|
||||||
|
|
||||||
// exp_less
|
// exp_less
|
||||||
@@ -83,7 +83,7 @@ namespace units {
|
|||||||
// dimension
|
// dimension
|
||||||
|
|
||||||
template<Exponent... Es>
|
template<Exponent... Es>
|
||||||
using dimension = mp::type_list<Es...>;
|
struct dimension;
|
||||||
|
|
||||||
// is_dimension
|
// is_dimension
|
||||||
namespace detail {
|
namespace detail {
|
||||||
@@ -95,7 +95,7 @@ namespace units {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
bool concept Dimension = detail::is_dimension<T>::value;
|
concept bool Dimension = detail::is_dimension<T>::value;
|
||||||
|
|
||||||
|
|
||||||
// make_dimension
|
// make_dimension
|
||||||
|
@@ -46,7 +46,7 @@ namespace units {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
bool concept Quantity = detail::is_quantity<T>::value;
|
concept bool Quantity = detail::is_quantity<T>::value;
|
||||||
|
|
||||||
// treat_as_floating_point
|
// treat_as_floating_point
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user