From 47c1930721c883fa532e73958fed129fcf1e4faa Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Fri, 11 Sep 2020 21:23:46 +0200 Subject: [PATCH] refactor: derived_from concepts refactored --- src/include/units/bits/basic_concepts.h | 6 +++--- src/include/units/bits/external/type_traits.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/include/units/bits/basic_concepts.h b/src/include/units/bits/basic_concepts.h index 0cdb8bdb..70281ae2 100644 --- a/src/include/units/bits/basic_concepts.h +++ b/src/include/units/bits/basic_concepts.h @@ -61,7 +61,7 @@ void to_prefix_base(const volatile prefix_base*); * Satisfied by all specializations of `prefix`. */ template -concept Prefix = requires(const volatile T* t) { detail::to_prefix_base(t); }; +concept Prefix = requires(T* t) { detail::to_prefix_base(t); }; /** * @brief A concept matching unit's ratio @@ -90,7 +90,7 @@ void to_base_scaled_unit(const volatile scaled_unit*); * Satisfied by all unit types derived from an specialization of :class:`scaled_unit`. */ template -concept Unit = requires { detail::to_base_scaled_unit(std::declval()); }; +concept Unit = requires(T* t) { detail::to_base_scaled_unit(t); }; // BaseDimension template @@ -110,7 +110,7 @@ void to_base_base_dimension(const volatile base_dimension*); * Satisfied by all dimension types derived from an specialization of `base_dimension`. */ template -concept BaseDimension = requires { detail::to_base_base_dimension(std::declval()); }; +concept BaseDimension = requires(T* t) { detail::to_base_base_dimension(t); }; // Exponent namespace detail { diff --git a/src/include/units/bits/external/type_traits.h b/src/include/units/bits/external/type_traits.h index db607b05..286a713e 100644 --- a/src/include/units/bits/external/type_traits.h +++ b/src/include/units/bits/external/type_traits.h @@ -75,6 +75,6 @@ void to_base_specialization_of(const volatile Type*); template typename Type> // inline constexpr bool // TODO: Replace with concept when it works with MSVC -concept is_derived_from_specialization_of = requires { detail::to_base_specialization_of(std::declval()); }; +concept is_derived_from_specialization_of = requires(T* t) { detail::to_base_specialization_of(t); }; } // namespace units