From 2e96871176cd21923f96b7caf4d5ebb8ed5a8d36 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Sat, 14 Sep 2024 19:41:43 -0600 Subject: [PATCH] refactor: `is_power_of_quantity_spec` and `is_power_of_dim` variable templates converted to concepts --- .../include/mp-units/framework/dimension_concepts.h | 10 ++++------ .../mp-units/framework/quantity_spec_concepts.h | 11 +++++------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/core/include/mp-units/framework/dimension_concepts.h b/src/core/include/mp-units/framework/dimension_concepts.h index 5f726c2b..1d289867 100644 --- a/src/core/include/mp-units/framework/dimension_concepts.h +++ b/src/core/include/mp-units/framework/dimension_concepts.h @@ -68,21 +68,19 @@ template struct is_dimension_one : std::false_type {}; template -constexpr bool is_power_of_dim = requires { - requires is_specialization_of_power && - (BaseDimension || is_dimension_one::value); -}; +concept IsPowerOfDim = + is_specialization_of_power && (BaseDimension || is_dimension_one::value); template constexpr bool is_per_of_dims = false; template constexpr bool is_per_of_dims> = - (... && (BaseDimension || is_dimension_one::value || is_power_of_dim)); + (... && (BaseDimension || is_dimension_one::value || IsPowerOfDim)); template concept DerivedDimensionExpr = - BaseDimension || is_dimension_one::value || is_power_of_dim || is_per_of_dims; + BaseDimension || is_dimension_one::value || IsPowerOfDim || is_per_of_dims; template concept SameDimension = 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 d780558e..d7263494 100644 --- a/src/core/include/mp-units/framework/quantity_spec_concepts.h +++ b/src/core/include/mp-units/framework/quantity_spec_concepts.h @@ -86,21 +86,20 @@ template struct is_dimensionless : std::false_type {}; template -constexpr bool is_power_of_quantity_spec = requires { - requires is_specialization_of_power && - (NamedQuantitySpec || is_dimensionless::value); -}; +concept IsPowerOfQuantitySpec = is_specialization_of_power && (NamedQuantitySpec || + is_dimensionless::value); + template constexpr bool is_per_of_quantity_specs = false; template constexpr bool is_per_of_quantity_specs> = - (... && (NamedQuantitySpec || is_dimensionless::value || is_power_of_quantity_spec)); + (... && (NamedQuantitySpec || is_dimensionless::value || IsPowerOfQuantitySpec)); template concept DerivedQuantitySpecExpr = detail::NamedQuantitySpec || detail::is_dimensionless::value || - detail::is_power_of_quantity_spec || detail::is_per_of_quantity_specs; + detail::IsPowerOfQuantitySpec || detail::is_per_of_quantity_specs; } // namespace detail