From 0522bae972c56fa5a57ce7f28f3536576eeacba7 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Wed, 11 May 2022 11:40:19 +0200 Subject: [PATCH] refactor: :boom: ! `unit` renamed to `derived_unit` --- src/core/include/units/unit.h | 30 +++++++++---------- .../units/isq/iec80000/transfer_rate.h | 2 +- .../si-cgs/include/units/isq/si/cgs/power.h | 2 +- .../si-cgs/include/units/isq/si/cgs/speed.h | 2 +- .../include/units/isq/si/fps/acceleration.h | 2 +- .../si-fps/include/units/isq/si/fps/area.h | 2 +- .../si-fps/include/units/isq/si/fps/density.h | 2 +- .../si-fps/include/units/isq/si/fps/energy.h | 2 +- .../si-fps/include/units/isq/si/fps/power.h | 2 +- .../include/units/isq/si/fps/pressure.h | 2 +- .../si-fps/include/units/isq/si/fps/speed.h | 2 +- .../si-fps/include/units/isq/si/fps/volume.h | 2 +- .../include/units/isq/si/hep/momentum.h | 2 +- .../si/include/units/isq/si/acceleration.h | 2 +- src/systems/si/include/units/isq/si/area.h | 2 +- .../si/include/units/isq/si/charge_density.h | 4 +-- .../si/include/units/isq/si/concentration.h | 2 +- .../si/include/units/isq/si/current_density.h | 2 +- src/systems/si/include/units/isq/si/density.h | 2 +- .../include/units/isq/si/dynamic_viscosity.h | 2 +- .../units/isq/si/electric_field_strength.h | 2 +- .../si/include/units/isq/si/energy_density.h | 2 +- .../si/include/units/isq/si/heat_capacity.h | 6 ++-- .../si/include/units/isq/si/luminance.h | 2 +- .../si/include/units/isq/si/molar_energy.h | 2 +- .../si/include/units/isq/si/momentum.h | 2 +- .../si/include/units/isq/si/permeability.h | 2 +- .../si/include/units/isq/si/permittivity.h | 2 +- src/systems/si/include/units/isq/si/speed.h | 2 +- .../si/include/units/isq/si/surface_tension.h | 2 +- .../units/isq/si/thermal_conductivity.h | 2 +- src/systems/si/include/units/isq/si/torque.h | 2 +- src/systems/si/include/units/isq/si/volume.h | 2 +- test/unit_test/static/custom_unit_test.cpp | 6 ++-- test/unit_test/static/unit_test.cpp | 2 +- 35 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/core/include/units/unit.h b/src/core/include/units/unit.h index 278c9c7c..f2faf55d 100644 --- a/src/core/include/units/unit.h +++ b/src/core/include/units/unit.h @@ -65,20 +65,6 @@ using downcast_unit = downcast::refere template struct same_unit_reference : is_same {}; -/** - * @brief An unnamed unit - * - * Defines a new unnamed (in most cases coherent) derived unit of a specific derived dimension - * and it should be passed in this dimension's definition. - * - * @tparam Child inherited class type used by the downcasting facility (CRTP Idiom) - */ -template -struct unit : downcast_dispatch> { - static constexpr bool is_named = false; - using prefix_family = no_prefix; -}; - /** * @brief A named unit * @@ -139,6 +125,20 @@ struct prefixed_unit : downcast_dispatch +struct derived_unit : downcast_dispatch> { + static constexpr bool is_named = false; + using prefix_family = no_prefix; +}; + /** * @brief A unit with a deduced ratio and symbol * @@ -209,6 +209,6 @@ struct prefixed_alias_unit : U { * * Used as a coherent unit of an unknown dimension. */ -struct unknown_coherent_unit : unit {}; +struct unknown_coherent_unit : derived_unit {}; } // namespace units diff --git a/src/systems/isq-iec80000/include/units/isq/iec80000/transfer_rate.h b/src/systems/isq-iec80000/include/units/isq/iec80000/transfer_rate.h index 0cd87928..ce22f0f3 100644 --- a/src/systems/isq-iec80000/include/units/isq/iec80000/transfer_rate.h +++ b/src/systems/isq-iec80000/include/units/isq/iec80000/transfer_rate.h @@ -34,7 +34,7 @@ namespace units::isq::iec80000 { -struct byte_per_second : unit {}; +struct byte_per_second : derived_unit {}; struct dim_transfer_rate : derived_dimension, exponent> {}; diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/power.h b/src/systems/si-cgs/include/units/isq/si/cgs/power.h index 1ac322f6..5d2b0483 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/power.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/power.h @@ -34,7 +34,7 @@ namespace units::isq::si::cgs { -struct erg_per_second : unit {}; +struct erg_per_second : derived_unit {}; struct dim_power : isq::dim_power {}; diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/speed.h b/src/systems/si-cgs/include/units/isq/si/cgs/speed.h index 6cdc4a7d..c70ee197 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/speed.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/speed.h @@ -34,7 +34,7 @@ namespace units::isq::si::cgs { -struct centimetre_per_second : unit {}; +struct centimetre_per_second : derived_unit {}; struct dim_speed : isq::dim_speed {}; template U, Representation Rep = double> diff --git a/src/systems/si-fps/include/units/isq/si/fps/acceleration.h b/src/systems/si-fps/include/units/isq/si/fps/acceleration.h index 97990439..da1c9593 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/acceleration.h +++ b/src/systems/si-fps/include/units/isq/si/fps/acceleration.h @@ -33,7 +33,7 @@ namespace units::isq::si::fps { -struct foot_per_second_sq : unit {}; +struct foot_per_second_sq : derived_unit {}; struct dim_acceleration : isq::dim_acceleration {}; template U, Representation Rep = double> diff --git a/src/systems/si-fps/include/units/isq/si/fps/area.h b/src/systems/si-fps/include/units/isq/si/fps/area.h index acafd67f..076dab96 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/area.h +++ b/src/systems/si-fps/include/units/isq/si/fps/area.h @@ -34,7 +34,7 @@ namespace units::isq::si::fps { -struct square_foot : unit {}; +struct square_foot : derived_unit {}; struct dim_area : isq::dim_area {}; diff --git a/src/systems/si-fps/include/units/isq/si/fps/density.h b/src/systems/si-fps/include/units/isq/si/fps/density.h index f2aa0e65..41ee340e 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/density.h +++ b/src/systems/si-fps/include/units/isq/si/fps/density.h @@ -34,7 +34,7 @@ namespace units::isq::si::fps { -struct pound_per_foot_cub : unit {}; +struct pound_per_foot_cub : derived_unit {}; struct dim_density : isq::dim_density {}; diff --git a/src/systems/si-fps/include/units/isq/si/fps/energy.h b/src/systems/si-fps/include/units/isq/si/fps/energy.h index f0f69c65..94bdac0d 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/energy.h +++ b/src/systems/si-fps/include/units/isq/si/fps/energy.h @@ -35,7 +35,7 @@ namespace units::isq::si::fps { // https://en.wikipedia.org/wiki/Foot-poundal -struct foot_poundal : unit {}; +struct foot_poundal : derived_unit {}; struct dim_energy : isq::dim_energy {}; diff --git a/src/systems/si-fps/include/units/isq/si/fps/power.h b/src/systems/si-fps/include/units/isq/si/fps/power.h index 37fe6ff7..d168ac6d 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/power.h +++ b/src/systems/si-fps/include/units/isq/si/fps/power.h @@ -35,7 +35,7 @@ namespace units::isq::si::fps { -struct foot_poundal_per_second : unit {}; +struct foot_poundal_per_second : derived_unit {}; struct dim_power : isq::dim_power {}; diff --git a/src/systems/si-fps/include/units/isq/si/fps/pressure.h b/src/systems/si-fps/include/units/isq/si/fps/pressure.h index 2c87269f..84658252 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/pressure.h +++ b/src/systems/si-fps/include/units/isq/si/fps/pressure.h @@ -36,7 +36,7 @@ namespace units::isq::si::fps { -struct poundal_per_foot_sq : unit {}; +struct poundal_per_foot_sq : derived_unit {}; struct dim_pressure : isq::dim_pressure {}; diff --git a/src/systems/si-fps/include/units/isq/si/fps/speed.h b/src/systems/si-fps/include/units/isq/si/fps/speed.h index a2577253..0fb4fbb4 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/speed.h +++ b/src/systems/si-fps/include/units/isq/si/fps/speed.h @@ -35,7 +35,7 @@ namespace units::isq::si::fps { -struct foot_per_second : unit {}; +struct foot_per_second : derived_unit {}; struct dim_speed : isq::dim_speed {}; template U, Representation Rep = double> diff --git a/src/systems/si-fps/include/units/isq/si/fps/volume.h b/src/systems/si-fps/include/units/isq/si/fps/volume.h index b7b813a6..c1ca9c72 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/volume.h +++ b/src/systems/si-fps/include/units/isq/si/fps/volume.h @@ -34,7 +34,7 @@ namespace units::isq::si::fps { -struct cubic_foot : unit {}; +struct cubic_foot : derived_unit {}; struct dim_volume : isq::dim_volume {}; struct cubic_yard : derived_deduced_unit {}; diff --git a/src/systems/si-hep/include/units/isq/si/hep/momentum.h b/src/systems/si-hep/include/units/isq/si/hep/momentum.h index 74a85390..26417868 100644 --- a/src/systems/si-hep/include/units/isq/si/hep/momentum.h +++ b/src/systems/si-hep/include/units/isq/si/hep/momentum.h @@ -34,7 +34,7 @@ namespace units::isq::si::hep { -struct kilogram_metre_per_second : unit {}; +struct kilogram_metre_per_second : derived_unit {}; struct eV_per_c : named_scaled_unit {}; +struct metre_per_second_sq : derived_unit {}; struct dim_acceleration : isq::dim_acceleration {}; template U, Representation Rep = double> diff --git a/src/systems/si/include/units/isq/si/area.h b/src/systems/si/include/units/isq/si/area.h index cd6efb2b..a3818096 100644 --- a/src/systems/si/include/units/isq/si/area.h +++ b/src/systems/si/include/units/isq/si/area.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct square_metre : unit {}; +struct square_metre : derived_unit {}; struct dim_area : isq::dim_area {}; struct square_yoctometre : derived_deduced_unit {}; diff --git a/src/systems/si/include/units/isq/si/charge_density.h b/src/systems/si/include/units/isq/si/charge_density.h index b50d0c03..52fba248 100644 --- a/src/systems/si/include/units/isq/si/charge_density.h +++ b/src/systems/si/include/units/isq/si/charge_density.h @@ -35,8 +35,8 @@ namespace units::isq::si { -struct coulomb_per_metre_cub : unit {}; -struct coulomb_per_metre_sq : unit {}; +struct coulomb_per_metre_cub : derived_unit {}; +struct coulomb_per_metre_sq : derived_unit {}; struct dim_charge_density : isq::dim_charge_density {}; diff --git a/src/systems/si/include/units/isq/si/concentration.h b/src/systems/si/include/units/isq/si/concentration.h index d59b3143..732583a5 100644 --- a/src/systems/si/include/units/isq/si/concentration.h +++ b/src/systems/si/include/units/isq/si/concentration.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct mol_per_metre_cub : unit {}; +struct mol_per_metre_cub : derived_unit {}; struct dim_concentration : isq::dim_concentration {}; diff --git a/src/systems/si/include/units/isq/si/current_density.h b/src/systems/si/include/units/isq/si/current_density.h index 4017414c..94234b5b 100644 --- a/src/systems/si/include/units/isq/si/current_density.h +++ b/src/systems/si/include/units/isq/si/current_density.h @@ -35,7 +35,7 @@ namespace units::isq::si { -struct ampere_per_metre_sq : unit {}; +struct ampere_per_metre_sq : derived_unit {}; struct dim_current_density : isq::dim_current_density {}; diff --git a/src/systems/si/include/units/isq/si/density.h b/src/systems/si/include/units/isq/si/density.h index 9a06b479..d890e225 100644 --- a/src/systems/si/include/units/isq/si/density.h +++ b/src/systems/si/include/units/isq/si/density.h @@ -35,7 +35,7 @@ namespace units::isq::si { -struct kilogram_per_metre_cub : unit {}; +struct kilogram_per_metre_cub : derived_unit {}; struct dim_density : isq::dim_density {}; diff --git a/src/systems/si/include/units/isq/si/dynamic_viscosity.h b/src/systems/si/include/units/isq/si/dynamic_viscosity.h index 763eb66c..81f0d2bb 100644 --- a/src/systems/si/include/units/isq/si/dynamic_viscosity.h +++ b/src/systems/si/include/units/isq/si/dynamic_viscosity.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct pascal_second : unit {}; +struct pascal_second : derived_unit {}; struct dim_dynamic_viscosity : isq::dim_dynamic_viscosity {}; diff --git a/src/systems/si/include/units/isq/si/electric_field_strength.h b/src/systems/si/include/units/isq/si/electric_field_strength.h index 49e843f7..773640d5 100644 --- a/src/systems/si/include/units/isq/si/electric_field_strength.h +++ b/src/systems/si/include/units/isq/si/electric_field_strength.h @@ -33,7 +33,7 @@ namespace units::isq::si { -struct volt_per_metre : unit {}; +struct volt_per_metre : derived_unit {}; struct dim_electric_field_strength : isq::dim_electric_field_strength {}; diff --git a/src/systems/si/include/units/isq/si/energy_density.h b/src/systems/si/include/units/isq/si/energy_density.h index 3e4e501e..e9e156d7 100644 --- a/src/systems/si/include/units/isq/si/energy_density.h +++ b/src/systems/si/include/units/isq/si/energy_density.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct joule_per_metre_cub : unit {}; +struct joule_per_metre_cub : derived_unit {}; struct dim_energy_density : isq::dim_energy_density {}; template U, Representation Rep = double> diff --git a/src/systems/si/include/units/isq/si/heat_capacity.h b/src/systems/si/include/units/isq/si/heat_capacity.h index b264f59d..5ae30cfa 100644 --- a/src/systems/si/include/units/isq/si/heat_capacity.h +++ b/src/systems/si/include/units/isq/si/heat_capacity.h @@ -36,9 +36,9 @@ namespace units::isq::si { -struct joule_per_kelvin : unit {}; -struct joule_per_kilogram_kelvin : unit {}; -struct joule_per_mole_kelvin : unit {}; +struct joule_per_kelvin : derived_unit {}; +struct joule_per_kilogram_kelvin : derived_unit {}; +struct joule_per_mole_kelvin : derived_unit {}; struct dim_heat_capacity : isq::dim_heat_capacity {}; diff --git a/src/systems/si/include/units/isq/si/luminance.h b/src/systems/si/include/units/isq/si/luminance.h index d6c6b74f..48f01073 100644 --- a/src/systems/si/include/units/isq/si/luminance.h +++ b/src/systems/si/include/units/isq/si/luminance.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct candela_per_metre_sq : unit {}; +struct candela_per_metre_sq : derived_unit {}; struct dim_luminance : isq::dim_luminance {}; template U, Representation Rep = double> diff --git a/src/systems/si/include/units/isq/si/molar_energy.h b/src/systems/si/include/units/isq/si/molar_energy.h index fa4cae49..02cb9072 100644 --- a/src/systems/si/include/units/isq/si/molar_energy.h +++ b/src/systems/si/include/units/isq/si/molar_energy.h @@ -35,7 +35,7 @@ namespace units::isq::si { -struct joule_per_mole : unit {}; +struct joule_per_mole : derived_unit {}; struct dim_molar_energy : isq::dim_molar_energy {}; diff --git a/src/systems/si/include/units/isq/si/momentum.h b/src/systems/si/include/units/isq/si/momentum.h index f4605e88..46446c92 100644 --- a/src/systems/si/include/units/isq/si/momentum.h +++ b/src/systems/si/include/units/isq/si/momentum.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct kilogram_metre_per_second : unit {}; +struct kilogram_metre_per_second : derived_unit {}; struct dim_momentum : isq::dim_momentum {}; template U, Representation Rep = double> diff --git a/src/systems/si/include/units/isq/si/permeability.h b/src/systems/si/include/units/isq/si/permeability.h index 2cb04734..5b961b21 100644 --- a/src/systems/si/include/units/isq/si/permeability.h +++ b/src/systems/si/include/units/isq/si/permeability.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct henry_per_metre : unit {}; +struct henry_per_metre : derived_unit {}; struct dim_permeability : isq::dim_permeability {}; diff --git a/src/systems/si/include/units/isq/si/permittivity.h b/src/systems/si/include/units/isq/si/permittivity.h index bb6b1953..cd99be6c 100644 --- a/src/systems/si/include/units/isq/si/permittivity.h +++ b/src/systems/si/include/units/isq/si/permittivity.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct farad_per_metre : unit {}; +struct farad_per_metre : derived_unit {}; struct dim_permittivity : isq::dim_permittivity {}; diff --git a/src/systems/si/include/units/isq/si/speed.h b/src/systems/si/include/units/isq/si/speed.h index ddb022cd..a2c3adc0 100644 --- a/src/systems/si/include/units/isq/si/speed.h +++ b/src/systems/si/include/units/isq/si/speed.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct metre_per_second : unit {}; +struct metre_per_second : derived_unit {}; struct dim_speed : isq::dim_speed {}; struct kilometre_per_hour : derived_deduced_unit {}; diff --git a/src/systems/si/include/units/isq/si/surface_tension.h b/src/systems/si/include/units/isq/si/surface_tension.h index 87b02a2c..382b133f 100644 --- a/src/systems/si/include/units/isq/si/surface_tension.h +++ b/src/systems/si/include/units/isq/si/surface_tension.h @@ -33,7 +33,7 @@ namespace units::isq::si { -struct newton_per_metre : unit {}; +struct newton_per_metre : derived_unit {}; struct dim_surface_tension : isq::dim_surface_tension {}; diff --git a/src/systems/si/include/units/isq/si/thermal_conductivity.h b/src/systems/si/include/units/isq/si/thermal_conductivity.h index d4a09c9f..64177b52 100644 --- a/src/systems/si/include/units/isq/si/thermal_conductivity.h +++ b/src/systems/si/include/units/isq/si/thermal_conductivity.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct watt_per_metre_kelvin : unit {}; +struct watt_per_metre_kelvin : derived_unit {}; struct dim_thermal_conductivity : isq::dim_thermal_conductivity {}; +struct newton_metre_per_radian : derived_unit {}; struct dim_torque : isq::dim_torque> {}; diff --git a/src/systems/si/include/units/isq/si/volume.h b/src/systems/si/include/units/isq/si/volume.h index 6f0dc9b1..a1f77b6e 100644 --- a/src/systems/si/include/units/isq/si/volume.h +++ b/src/systems/si/include/units/isq/si/volume.h @@ -34,7 +34,7 @@ namespace units::isq::si { -struct cubic_metre : unit {}; +struct cubic_metre : derived_unit {}; struct dim_volume : isq::dim_volume {}; struct cubic_yoctometre : derived_deduced_unit {}; diff --git a/test/unit_test/static/custom_unit_test.cpp b/test/unit_test/static/custom_unit_test.cpp index 15216be8..bf26b340 100644 --- a/test/unit_test/static/custom_unit_test.cpp +++ b/test/unit_test/static/custom_unit_test.cpp @@ -36,7 +36,7 @@ using namespace units; using namespace units::isq::si; // power spectral density -struct sq_volt_per_hertz : unit {}; +struct sq_volt_per_hertz : derived_unit {}; struct dim_power_spectral_density : derived_dimension, units::exponent> {}; @@ -45,7 +45,7 @@ template U, Representation Rep = double> using power_spectral_density = quantity; // amplitude spectral density -struct volt_per_sqrt_hertz : unit {}; +struct volt_per_sqrt_hertz : derived_unit {}; struct dim_amplitude_spectral_density : derived_dimension, units::exponent> {}; @@ -69,7 +69,7 @@ static_assert(compare(16 namespace { -struct kilogram_per_second : unit {}; +struct kilogram_per_second : derived_unit {}; struct dim_mass_rate : derived_dimension, units::exponent> { }; diff --git a/test/unit_test/static/unit_test.cpp b/test/unit_test/static/unit_test.cpp index 059ef739..ddd97b88 100644 --- a/test/unit_test/static/unit_test.cpp +++ b/test/unit_test/static/unit_test.cpp @@ -52,7 +52,7 @@ static_assert([](P) { }(si::kilo{})); // no prefix allowed #endif -struct metre_per_second : unit {}; +struct metre_per_second : derived_unit {}; struct dim_speed : derived_dimension, units::exponent> {}; struct kilometre_per_hour : derived_deduced_unit {};