refactor: QuantityLikeImpl refactored to conform to API Reference by @JohelEGP

This commit is contained in:
Mateusz Pusz
2024-11-02 13:56:49 +01:00
parent 9d05e31af7
commit 80a4d6bc80

View File

@ -59,8 +59,10 @@ template<typename T, template<typename> typename Traits>
concept QuantityLikeImpl = requires(const T& qty, const Traits<T>::rep& num) {
{ Traits<T>::to_numerical_value(qty) } -> std::same_as<typename Traits<T>::rep>;
{ Traits<T>::from_numerical_value(num) } -> std::same_as<T>;
{ Traits<T>::explicit_import } -> std::convertible_to<bool>;
{ Traits<T>::explicit_export } -> std::convertible_to<bool>;
requires std::same_as<decltype(Traits<T>::explicit_import), const bool>;
requires std::same_as<decltype(Traits<T>::explicit_export), const bool>;
typename std::bool_constant<Traits<T>::explicit_import>;
typename std::bool_constant<Traits<T>::explicit_export>;
};
} // namespace detail