diff --git a/src/core/include/mp-units/ext/type_traits.h b/src/core/include/mp-units/ext/type_traits.h index 01d3780d..70b9523c 100644 --- a/src/core/include/mp-units/ext/type_traits.h +++ b/src/core/include/mp-units/ext/type_traits.h @@ -196,7 +196,7 @@ template typename T, typename T1, typename T2, typename... Ts> namespace detail { template -concept TagType = std::is_empty_v && std::is_final_v; +concept SymbolicConstant = std::is_empty_v && std::is_final_v; } diff --git a/src/core/include/mp-units/framework/dimension_concepts.h b/src/core/include/mp-units/framework/dimension_concepts.h index 6e3c653b..28914f9a 100644 --- a/src/core/include/mp-units/framework/dimension_concepts.h +++ b/src/core/include/mp-units/framework/dimension_concepts.h @@ -42,7 +42,7 @@ struct dimension_interface; * Satisfied by all dimension types in the library. */ MP_UNITS_EXPORT template -concept Dimension = detail::TagType && std::derived_from; +concept Dimension = detail::SymbolicConstant && std::derived_from; MP_UNITS_EXPORT template struct base_dimension; diff --git a/src/core/include/mp-units/framework/magnitude_concepts.h b/src/core/include/mp-units/framework/magnitude_concepts.h index 586c25e4..a979923a 100644 --- a/src/core/include/mp-units/framework/magnitude_concepts.h +++ b/src/core/include/mp-units/framework/magnitude_concepts.h @@ -47,7 +47,7 @@ MP_UNITS_EXPORT template struct mag_constant; MP_UNITS_EXPORT template -concept MagConstant = detail::TagType && is_derived_from_specialization_of_v; +concept MagConstant = detail::SymbolicConstant && is_derived_from_specialization_of_v; template struct magnitude; diff --git a/src/core/include/mp-units/framework/quantity_point_concepts.h b/src/core/include/mp-units/framework/quantity_point_concepts.h index 91409cd6..08834c9a 100644 --- a/src/core/include/mp-units/framework/quantity_point_concepts.h +++ b/src/core/include/mp-units/framework/quantity_point_concepts.h @@ -65,7 +65,7 @@ struct point_origin_interface; * Satisfied by either quantity points or by all types derived from `absolute_point_origin` class template. */ MP_UNITS_EXPORT template -concept PointOrigin = detail::TagType && std::derived_from; +concept PointOrigin = detail::SymbolicConstant && std::derived_from; /** * @brief A concept matching all quantity point origins for a specified quantity type in the library diff --git a/src/core/include/mp-units/framework/quantity_spec_concepts.h b/src/core/include/mp-units/framework/quantity_spec_concepts.h index e7d4745f..6e7e0934 100644 --- a/src/core/include/mp-units/framework/quantity_spec_concepts.h +++ b/src/core/include/mp-units/framework/quantity_spec_concepts.h @@ -37,7 +37,7 @@ struct quantity_spec_interface_base; } MP_UNITS_EXPORT template -concept QuantitySpec = detail::TagType && std::derived_from; +concept QuantitySpec = detail::SymbolicConstant && std::derived_from; MP_UNITS_EXPORT #if MP_UNITS_API_NO_CRTP diff --git a/src/core/include/mp-units/framework/unit_concepts.h b/src/core/include/mp-units/framework/unit_concepts.h index cf4f90b1..c66f0b72 100644 --- a/src/core/include/mp-units/framework/unit_concepts.h +++ b/src/core/include/mp-units/framework/unit_concepts.h @@ -43,7 +43,7 @@ struct unit_interface; * Satisfied by all unit types provided by the library. */ MP_UNITS_EXPORT template -concept Unit = detail::TagType && std::derived_from; +concept Unit = detail::SymbolicConstant && std::derived_from; template requires(M != magnitude<>{} && M != mag<1>)