From bd862d351789a2859a083ac9f77364be25dbadc5 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Wed, 7 Apr 2021 11:26:45 +0200 Subject: [PATCH] refactor: Fine-grained references support added --- docs/framework/quantities.rst | 10 ++++++++-- example/references/box_example.cpp | 6 ++++-- example/references/experimental_angle.cpp | 8 ++++---- example/references/linear_algebra.cpp | 4 ++-- example/references/total_energy.cpp | 4 ++-- src/core/include/units/generic/angle.h | 8 +++++++- src/core/include/units/reference.h | 8 +++++++- .../include/units/isq/iec80000/modulation_rate.h | 8 +++++++- .../include/units/isq/iec80000/storage_capacity.h | 8 +++++++- .../include/units/isq/iec80000/traffic_intensity.h | 8 +++++++- .../si-cgs/include/units/isq/si/cgs/acceleration.h | 8 +++++++- src/systems/si-cgs/include/units/isq/si/cgs/area.h | 8 +++++++- src/systems/si-cgs/include/units/isq/si/cgs/energy.h | 8 +++++++- src/systems/si-cgs/include/units/isq/si/cgs/force.h | 8 +++++++- src/systems/si-cgs/include/units/isq/si/cgs/length.h | 8 +++++++- src/systems/si-cgs/include/units/isq/si/cgs/mass.h | 8 +++++++- src/systems/si-cgs/include/units/isq/si/cgs/pressure.h | 8 +++++++- src/systems/si-cgs/include/units/isq/si/cgs/time.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/area.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/force.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/length.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/mass.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/power.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/pressure.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/speed.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/time.h | 8 +++++++- src/systems/si-fps/include/units/isq/si/fps/volume.h | 8 +++++++- src/systems/si-iau/include/units/isq/si/iau/length.h | 8 +++++++- .../si-imperial/include/units/isq/si/imperial/length.h | 8 +++++++- .../include/units/isq/si/international/area.h | 8 +++++++- .../include/units/isq/si/international/length.h | 8 +++++++- .../include/units/isq/si/international/volume.h | 8 +++++++- .../include/units/isq/si/typographic/length.h | 8 +++++++- src/systems/si-us/include/units/isq/si/us/length.h | 8 +++++++- src/systems/si/include/units/isq/si/absorbed_dose.h | 8 +++++++- .../si/include/units/isq/si/amount_of_substance.h | 8 +++++++- src/systems/si/include/units/isq/si/area.h | 8 +++++++- src/systems/si/include/units/isq/si/capacitance.h | 8 +++++++- .../si/include/units/isq/si/catalytic_activity.h | 9 +++++++-- src/systems/si/include/units/isq/si/conductance.h | 8 +++++++- src/systems/si/include/units/isq/si/electric_charge.h | 8 +++++++- src/systems/si/include/units/isq/si/electric_current.h | 8 +++++++- src/systems/si/include/units/isq/si/energy.h | 9 ++++++++- src/systems/si/include/units/isq/si/force.h | 8 +++++++- src/systems/si/include/units/isq/si/frequency.h | 8 +++++++- src/systems/si/include/units/isq/si/inductance.h | 8 +++++++- src/systems/si/include/units/isq/si/length.h | 8 +++++++- .../si/include/units/isq/si/luminous_intensity.h | 8 +++++++- src/systems/si/include/units/isq/si/magnetic_flux.h | 8 +++++++- .../si/include/units/isq/si/magnetic_induction.h | 8 +++++++- src/systems/si/include/units/isq/si/mass.h | 8 +++++++- src/systems/si/include/units/isq/si/power.h | 8 +++++++- src/systems/si/include/units/isq/si/pressure.h | 8 +++++++- src/systems/si/include/units/isq/si/radioactivity.h | 8 +++++++- src/systems/si/include/units/isq/si/resistance.h | 8 +++++++- .../include/units/isq/si/thermodynamic_temperature.h | 8 +++++++- src/systems/si/include/units/isq/si/time.h | 10 ++++++++-- src/systems/si/include/units/isq/si/voltage.h | 8 +++++++- src/systems/si/include/units/isq/si/volume.h | 8 +++++++- 59 files changed, 400 insertions(+), 68 deletions(-) diff --git a/docs/framework/quantities.rst b/docs/framework/quantities.rst index b003bc94..cc6dea2f 100644 --- a/docs/framework/quantities.rst +++ b/docs/framework/quantities.rst @@ -58,12 +58,18 @@ They are defined using the `reference` class template:: #ifdef UNITS_REFERENCES - namespace references { + namespace length_references { inline constexpr auto km = reference{}; inline constexpr auto h = reference{}; - } + } // namespace length_references + + namespace references { + + using namespace length_references; + + } // namespace references #endif // UNITS_REFERENCES diff --git a/example/references/box_example.cpp b/example/references/box_example.cpp index 92743e3e..facf6d8f 100644 --- a/example/references/box_example.cpp +++ b/example/references/box_example.cpp @@ -39,12 +39,12 @@ namespace { using namespace units::isq; -using namespace si::references; +using namespace si::mass_references; +using namespace si::volume_references; inline constexpr Acceleration auto g = si::si2019::standard_gravity<>; inline constexpr Density auto air_density = 1.225 * (kg / m3); - class Box { si::area base_; si::length height_; @@ -82,6 +82,8 @@ public: int main() { using namespace units; + using namespace si::length_references; + using namespace si::time_references; const si::length height = 200.0 * mm; auto box = Box(1000.0 * mm, 500.0 * mm, height); diff --git a/example/references/experimental_angle.cpp b/example/references/experimental_angle.cpp index 4d04fbe6..2e2622a6 100644 --- a/example/references/experimental_angle.cpp +++ b/example/references/experimental_angle.cpp @@ -24,21 +24,21 @@ UNITS_DIAGNOSTIC_PUSH UNITS_DIAGNOSTIC_IGNORE_SHADOW +#include +UNITS_DIAGNOSTIC_POP + #include #include -#include #include #include // IWYU pragma: keep #include -UNITS_DIAGNOSTIC_POP - #include int main() { - using namespace units::references; using namespace units::isq; using namespace units::isq::si::references; + using namespace units::references; Torque auto torque = 20.0 * (N * m / rad); Energy auto energy = 20.0 * J; diff --git a/example/references/linear_algebra.cpp b/example/references/linear_algebra.cpp index 1dbd658c..94214542 100644 --- a/example/references/linear_algebra.cpp +++ b/example/references/linear_algebra.cpp @@ -60,7 +60,8 @@ std::ostream& operator<<(std::ostream& os, const matrix& v) namespace { using namespace units::isq; -using namespace units::isq::si::references; +using namespace units::isq::si::length_references; +using namespace units::isq::si::force_references; template using vector = std::math::fs_vector; @@ -68,7 +69,6 @@ using vector = std::math::fs_vector; template using matrix = std::math::fs_matrix; - void vector_of_quantity_add() { std::cout << "\nvector_of_quantity_add:\n"; diff --git a/example/references/total_energy.cpp b/example/references/total_energy.cpp index 0398c82f..71c72c9e 100644 --- a/example/references/total_energy.cpp +++ b/example/references/total_energy.cpp @@ -21,11 +21,11 @@ // SOFTWARE. #include +#include #include #include #include #include // IWYU pragma: keep -#include #include #include #include @@ -43,7 +43,7 @@ Energy auto total_energy(Momentum auto p, Mass auto m, Speed auto c) void si_example() { using namespace units::isq::si; - using namespace units::isq::si::references; + using namespace units::isq::si::energy_references; constexpr Speed auto c = si2019::speed_of_light<>; diff --git a/src/core/include/units/generic/angle.h b/src/core/include/units/generic/angle.h index 26fdd80c..76bd1f51 100644 --- a/src/core/include/units/generic/angle.h +++ b/src/core/include/units/generic/angle.h @@ -57,10 +57,16 @@ constexpr auto operator"" _q_rad(long double l) { return angle, radian>{}; +} // namespace angle_references + +namespace references { + +using namespace angle_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/core/include/units/reference.h b/src/core/include/units/reference.h index 31e4f388..799d915d 100644 --- a/src/core/include/units/reference.h +++ b/src/core/include/units/reference.h @@ -61,12 +61,18 @@ using reference_divide = detail::reference_divide_impl< * This type is intended to be used in the quantity references definition: * * @code{.cpp} - * namespace references { + * namespace length_references { * * inline constexpr auto m = reference{}; * inline constexpr auto km = reference{}; * * } + * + * namespace references { + * + * using namespace length_references; + * + * } * @endcode * * Quantity references simplify quantity creation: diff --git a/src/systems/isq-iec80000/include/units/isq/iec80000/modulation_rate.h b/src/systems/isq-iec80000/include/units/isq/iec80000/modulation_rate.h index 81cd60f1..dc01a6ed 100644 --- a/src/systems/isq-iec80000/include/units/isq/iec80000/modulation_rate.h +++ b/src/systems/isq-iec80000/include/units/isq/iec80000/modulation_rate.h @@ -70,7 +70,7 @@ constexpr auto operator"" _q_YBd(unsigned long long l) { gsl_ExpectsAudit(std::i #ifdef UNITS_REFERENCES -namespace references { +namespace modulation_rate_references { inline constexpr auto Bd = reference{}; inline constexpr auto kBd = reference{}; @@ -82,6 +82,12 @@ inline constexpr auto EBd = reference{}; inline constexpr auto ZBd = reference{}; inline constexpr auto YBd = reference{}; +} // namespace modulation_rate_references + +namespace references { + +using namespace modulation_rate_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/isq-iec80000/include/units/isq/iec80000/storage_capacity.h b/src/systems/isq-iec80000/include/units/isq/iec80000/storage_capacity.h index 88ca062d..285ae84c 100644 --- a/src/systems/isq-iec80000/include/units/isq/iec80000/storage_capacity.h +++ b/src/systems/isq-iec80000/include/units/isq/iec80000/storage_capacity.h @@ -127,7 +127,7 @@ constexpr auto operator"" _q_PiB(unsigned long long l) { gsl_ExpectsAudit(std::i #ifdef UNITS_REFERENCES -namespace references { +namespace storage_capacity_references { // bits inline constexpr auto bit = reference{}; @@ -167,6 +167,12 @@ inline constexpr auto TiB = reference{}; inline constexpr auto PiB = reference{}; // inline constexpr auto EiB = reference{}; +} // namespace storage_capacity_references + +namespace references { + +using namespace storage_capacity_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/isq-iec80000/include/units/isq/iec80000/traffic_intensity.h b/src/systems/isq-iec80000/include/units/isq/iec80000/traffic_intensity.h index e74b2c7d..88dad8e5 100644 --- a/src/systems/isq-iec80000/include/units/isq/iec80000/traffic_intensity.h +++ b/src/systems/isq-iec80000/include/units/isq/iec80000/traffic_intensity.h @@ -55,10 +55,16 @@ constexpr auto operator"" _q_E(unsigned long long l) { gsl_ExpectsAudit(std::in_ #ifdef UNITS_REFERENCES -namespace references { +namespace traffic_intensity_references { inline constexpr auto E = reference{}; +} // namespace traffic_intensity_references + +namespace references { + +using namespace traffic_intensity_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/acceleration.h b/src/systems/si-cgs/include/units/isq/si/cgs/acceleration.h index 4430d92f..a66213de 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/acceleration.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/acceleration.h @@ -54,10 +54,16 @@ constexpr auto operator"" _q_Gal(long double l) { return acceleration{}; +} // namespace acceleration_references + +namespace references { + +using namespace acceleration_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/area.h b/src/systems/si-cgs/include/units/isq/si/cgs/area.h index b72808b7..89361609 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/area.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/area.h @@ -56,10 +56,16 @@ constexpr auto operator"" _q_cm2(long double l) { return area{}; +} // namespace area_references + +namespace references { + +using namespace area_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/energy.h b/src/systems/si-cgs/include/units/isq/si/cgs/energy.h index 808d0802..5abcebe5 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/energy.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/energy.h @@ -56,10 +56,16 @@ constexpr auto operator"" _q_erg(long double l) { return energy{}; +} // namespace energy_references + +namespace references { + +using namespace energy_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/force.h b/src/systems/si-cgs/include/units/isq/si/cgs/force.h index 08619053..579ea978 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/force.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/force.h @@ -57,10 +57,16 @@ constexpr auto operator"" _q_dyn(long double l) { return force{}; +} // namespace force_references + +namespace references { + +using namespace force_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/length.h b/src/systems/si-cgs/include/units/isq/si/cgs/length.h index 722bba47..996d82c0 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/length.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/length.h @@ -55,10 +55,16 @@ constexpr auto operator"" _q_cm(long double l) { return length{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/mass.h b/src/systems/si-cgs/include/units/isq/si/cgs/mass.h index 79b5cc9e..6c4012f5 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/mass.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/mass.h @@ -55,10 +55,16 @@ constexpr auto operator"" _q_g(long double l) { return mass(l #ifdef UNITS_REFERENCES -namespace references { +namespace mass_references { inline constexpr auto g = reference{}; +} // namespace mass_references + +namespace references { + +using namespace mass_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/pressure.h b/src/systems/si-cgs/include/units/isq/si/cgs/pressure.h index 2edf358c..7c43811c 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/pressure.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/pressure.h @@ -57,10 +57,16 @@ constexpr auto operator"" _q_Ba(long double l) { return pressure{}; +} // namespace pressure_references + +namespace references { + +using namespace pressure_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-cgs/include/units/isq/si/cgs/time.h b/src/systems/si-cgs/include/units/isq/si/cgs/time.h index ff7cfb45..aea13655 100644 --- a/src/systems/si-cgs/include/units/isq/si/cgs/time.h +++ b/src/systems/si-cgs/include/units/isq/si/cgs/time.h @@ -49,10 +49,16 @@ using si::literals::operator"" _q_s; #ifdef UNITS_REFERENCES -namespace references { +namespace time_references { using si::references::s; +} // namespace time_references + +namespace references { + +using namespace time_references; + } // namespace references #endif // UNITS_REFERENCES 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 836b1e02..7836e291 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 @@ -55,10 +55,16 @@ constexpr auto operator"" _q_ft2(long double l) { return area{}; +} // namespace area_references + +namespace references { + +using namespace area_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-fps/include/units/isq/si/fps/force.h b/src/systems/si-fps/include/units/isq/si/fps/force.h index ccb61440..25128e60 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/force.h +++ b/src/systems/si-fps/include/units/isq/si/fps/force.h @@ -74,12 +74,18 @@ constexpr auto operator"" _q_klbf(long double l) { return force{}; inline constexpr auto lbf = reference{}; inline constexpr auto klbf = reference{}; +} // namespace force_references + +namespace references { + +using namespace force_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-fps/include/units/isq/si/fps/length.h b/src/systems/si-fps/include/units/isq/si/fps/length.h index 1e40e0d4..a9ac37ff 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/length.h +++ b/src/systems/si-fps/include/units/isq/si/fps/length.h @@ -104,7 +104,7 @@ constexpr auto operator"" _q_naut_mi(long double l) { return length{}; inline constexpr auto mil = thou; @@ -117,6 +117,12 @@ inline constexpr auto kyd = reference{}; inline constexpr auto mile = reference{}; inline constexpr auto naut_mi = reference{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-fps/include/units/isq/si/fps/mass.h b/src/systems/si-fps/include/units/isq/si/fps/mass.h index b6bfdf86..26535de3 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/mass.h +++ b/src/systems/si-fps/include/units/isq/si/fps/mass.h @@ -104,7 +104,7 @@ constexpr auto operator"" _q_lton(long double l) { return mass{}; inline constexpr auto dr = reference{}; @@ -116,6 +116,12 @@ inline constexpr auto cwt = reference{}; inline constexpr auto ston = reference{}; inline constexpr auto lton = reference{}; +} // namespace mass_references + +namespace references { + +using namespace mass_references; + } // namespace references #endif // UNITS_REFERENCES 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 c797f041..4b3d2458 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 @@ -68,10 +68,16 @@ constexpr auto operator"" _q_hp(long double l) { return power{}; +} // namespace power_references + +namespace references { + +using namespace power_references; + } // namespace references #endif // UNITS_REFERENCES 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 33d3dda6..8cd40b35 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 @@ -71,11 +71,17 @@ constexpr auto operator"" _q_kpsi(long double l) { return pressure{}; inline constexpr auto kpsi = reference{}; +} // namespace pressure_references + +namespace references { + +using namespace pressure_references; + } // namespace references #endif // UNITS_REFERENCES 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 700b2daa..f36eb017 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 @@ -70,11 +70,17 @@ constexpr auto operator"" _q_knot(long double l) { return speed{}; inline constexpr auto knot = reference{}; +} // namespace speed_references + +namespace references { + +using namespace speed_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-fps/include/units/isq/si/fps/time.h b/src/systems/si-fps/include/units/isq/si/fps/time.h index bd7f7de0..d4f9d4cf 100644 --- a/src/systems/si-fps/include/units/isq/si/fps/time.h +++ b/src/systems/si-fps/include/units/isq/si/fps/time.h @@ -53,10 +53,16 @@ using si::literals::operator"" _q_s; #ifdef UNITS_REFERENCES -namespace references { +namespace time_references { using si::references::s; +} // namespace time_references + +namespace references { + +using namespace time_references; + } // namespace references #endif // UNITS_REFERENCES 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 a4b66fa7..f9d91ba1 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 @@ -60,11 +60,17 @@ constexpr auto operator"" _q_yd3(long double l) { return volume{}; inline constexpr auto yd3 = reference{}; +} // namespace volume_references + +namespace references { + +using namespace volume_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-iau/include/units/isq/si/iau/length.h b/src/systems/si-iau/include/units/isq/si/iau/length.h index 521413e3..cfe16dde 100644 --- a/src/systems/si-iau/include/units/isq/si/iau/length.h +++ b/src/systems/si-iau/include/units/isq/si/iau/length.h @@ -66,12 +66,18 @@ constexpr auto operator"" _q_angstrom(long double l) { return si::length{}; inline constexpr auto pc = reference{}; inline constexpr auto angstrom = reference{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-imperial/include/units/isq/si/imperial/length.h b/src/systems/si-imperial/include/units/isq/si/imperial/length.h index fb1a0366..8af5ad1e 100644 --- a/src/systems/si-imperial/include/units/isq/si/imperial/length.h +++ b/src/systems/si-imperial/include/units/isq/si/imperial/length.h @@ -58,11 +58,17 @@ constexpr auto operator"" _q_rd(long double l) { return si::length{}; inline constexpr auto rd = reference{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-international/include/units/isq/si/international/area.h b/src/systems/si-international/include/units/isq/si/international/area.h index 5e657ad4..05d7b17f 100644 --- a/src/systems/si-international/include/units/isq/si/international/area.h +++ b/src/systems/si-international/include/units/isq/si/international/area.h @@ -51,10 +51,16 @@ constexpr auto operator"" _q_ft2(long double l) { return si::area{}; +} // namespace area_references + +namespace references { + +using namespace area_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-international/include/units/isq/si/international/length.h b/src/systems/si-international/include/units/isq/si/international/length.h index 01b7bc16..4607f008 100644 --- a/src/systems/si-international/include/units/isq/si/international/length.h +++ b/src/systems/si-international/include/units/isq/si/international/length.h @@ -108,7 +108,7 @@ constexpr auto operator"" _q_mil(long double l) { return si::length{}; inline constexpr auto ft = reference{}; @@ -119,6 +119,12 @@ inline constexpr auto mi_naut = reference{}; inline constexpr auto thou = reference{}; inline constexpr auto mil = reference{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-international/include/units/isq/si/international/volume.h b/src/systems/si-international/include/units/isq/si/international/volume.h index 69e34a2c..9e03d521 100644 --- a/src/systems/si-international/include/units/isq/si/international/volume.h +++ b/src/systems/si-international/include/units/isq/si/international/volume.h @@ -51,10 +51,16 @@ constexpr auto operator"" _q_ft3(long double l) { return si::volume{}; +} // namespace volume_references + +namespace references { + +using namespace volume_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-typographic/include/units/isq/si/typographic/length.h b/src/systems/si-typographic/include/units/isq/si/typographic/length.h index 4dc404b1..17467cec 100644 --- a/src/systems/si-typographic/include/units/isq/si/typographic/length.h +++ b/src/systems/si-typographic/include/units/isq/si/typographic/length.h @@ -67,13 +67,19 @@ constexpr auto operator"" _q_point_prn(long double l) { return si::length{}; inline constexpr auto pica_prn = reference{}; inline constexpr auto point_comp = reference{}; inline constexpr auto point_prn = reference{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si-us/include/units/isq/si/us/length.h b/src/systems/si-us/include/units/isq/si/us/length.h index e34e5454..b115dac6 100644 --- a/src/systems/si-us/include/units/isq/si/us/length.h +++ b/src/systems/si-us/include/units/isq/si/us/length.h @@ -67,12 +67,18 @@ constexpr auto operator"" _q_mi_us(long double l) { return si::length{}; inline constexpr auto fathom = reference{}; inline constexpr auto mi = reference{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/absorbed_dose.h b/src/systems/si/include/units/isq/si/absorbed_dose.h index 31d07dea..d2d7e015 100644 --- a/src/systems/si/include/units/isq/si/absorbed_dose.h +++ b/src/systems/si/include/units/isq/si/absorbed_dose.h @@ -156,7 +156,7 @@ constexpr auto operator"" _q_YGy(long double l) { return absorbed_dose{}; inline constexpr auto yGy = reference{}; @@ -180,6 +180,12 @@ inline constexpr auto EGy = reference{}; inline constexpr auto ZGy = reference{}; inline constexpr auto YGy = reference{}; +} // namespace absorbed_dose_references + +namespace references { + +using namespace absorbed_dose_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/amount_of_substance.h b/src/systems/si/include/units/isq/si/amount_of_substance.h index bf066393..433c4f6b 100644 --- a/src/systems/si/include/units/isq/si/amount_of_substance.h +++ b/src/systems/si/include/units/isq/si/amount_of_substance.h @@ -55,10 +55,16 @@ constexpr auto operator"" _q_mol(long double l) { return amount_of_substance{}; +} // namespace amount_of_substance_references + +namespace references { + +using namespace amount_of_substance_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/area.h b/src/systems/si/include/units/isq/si/area.h index 15732212..ed77183d 100644 --- a/src/systems/si/include/units/isq/si/area.h +++ b/src/systems/si/include/units/isq/si/area.h @@ -161,7 +161,7 @@ constexpr auto operator"" _q_ha(long double l) { return area{}; inline constexpr auto ym2 = reference{}; @@ -186,6 +186,12 @@ inline constexpr auto Zm2 = reference{}; inline constexpr auto Ym2 = reference{}; inline constexpr auto ha = reference{}; +} // namespace area_references + +namespace references { + +using namespace area_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/capacitance.h b/src/systems/si/include/units/isq/si/capacitance.h index 2799c20b..62774493 100644 --- a/src/systems/si/include/units/isq/si/capacitance.h +++ b/src/systems/si/include/units/isq/si/capacitance.h @@ -157,7 +157,7 @@ constexpr auto operator"" _q_YF(long double l) { return capacitance{}; inline constexpr auto yF = reference{}; @@ -181,6 +181,12 @@ inline constexpr auto EF = reference{}; inline constexpr auto ZF = reference{}; inline constexpr auto YF = reference{}; +} // namespace capacitance_references + +namespace references { + +using namespace capacitance_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/catalytic_activity.h b/src/systems/si/include/units/isq/si/catalytic_activity.h index 6eb94169..f822da23 100644 --- a/src/systems/si/include/units/isq/si/catalytic_activity.h +++ b/src/systems/si/include/units/isq/si/catalytic_activity.h @@ -163,7 +163,7 @@ constexpr auto operator"" _q_U(long double l) { return catalytic_activity{}; inline constexpr auto ykat = reference{}; @@ -188,9 +188,14 @@ inline constexpr auto Zkat = reference{}; inline constexpr auto Ykat = reference{}; inline constexpr auto U = reference{}; +} + +namespace references { + +using namespace catalytic_activity_references; + } // namespace references #endif // UNITS_REFERENCES } // namespace units::isq::si - diff --git a/src/systems/si/include/units/isq/si/conductance.h b/src/systems/si/include/units/isq/si/conductance.h index b03838c3..8a903af5 100644 --- a/src/systems/si/include/units/isq/si/conductance.h +++ b/src/systems/si/include/units/isq/si/conductance.h @@ -136,7 +136,7 @@ constexpr auto operator"" _q_YS(long double l) { return conductance{}; inline constexpr auto yS = reference{}; @@ -156,6 +156,12 @@ inline constexpr auto ES = reference{}; inline constexpr auto ZS = reference{}; inline constexpr auto YS = reference{}; +} // namespace conductance_references + +namespace references { + +using namespace conductance_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/electric_charge.h b/src/systems/si/include/units/isq/si/electric_charge.h index 7457e2e7..497b12a1 100644 --- a/src/systems/si/include/units/isq/si/electric_charge.h +++ b/src/systems/si/include/units/isq/si/electric_charge.h @@ -56,10 +56,16 @@ constexpr auto operator"" _q_C(long double l) { return electric_charge{}; +} // namespace electric_charge_references + +namespace references { + +using namespace electric_charge_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/electric_current.h b/src/systems/si/include/units/isq/si/electric_current.h index 236b45b5..a8c3ff74 100644 --- a/src/systems/si/include/units/isq/si/electric_current.h +++ b/src/systems/si/include/units/isq/si/electric_current.h @@ -155,7 +155,7 @@ constexpr auto operator"" _q_YA(long double l) { return electric_current{}; inline constexpr auto yA = reference{}; @@ -179,6 +179,12 @@ inline constexpr auto EA = reference{}; inline constexpr auto ZA = reference{}; inline constexpr auto YA = reference{}; +} // namespace electric_current_references + +namespace references { + +using namespace electric_current_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/energy.h b/src/systems/si/include/units/isq/si/energy.h index bf2a7aaf..9170b42f 100644 --- a/src/systems/si/include/units/isq/si/energy.h +++ b/src/systems/si/include/units/isq/si/energy.h @@ -147,7 +147,7 @@ constexpr auto operator"" _q_GeV(long double l) { return energy{}; inline constexpr auto yJ = reference{}; @@ -166,9 +166,16 @@ inline constexpr auto PJ = reference{}; inline constexpr auto EJ = reference{}; inline constexpr auto ZJ = reference{}; inline constexpr auto YJ = reference{}; + inline constexpr auto eV = reference{}; inline constexpr auto GeV = reference{}; +} // namespace energy_references + +namespace references { + +using namespace energy_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/force.h b/src/systems/si/include/units/isq/si/force.h index 4dd17ae2..095f2489 100644 --- a/src/systems/si/include/units/isq/si/force.h +++ b/src/systems/si/include/units/isq/si/force.h @@ -157,7 +157,7 @@ constexpr auto operator"" _q_YN(long double l) { return force{}; inline constexpr auto yN = reference{}; @@ -181,6 +181,12 @@ inline constexpr auto EN = reference{}; inline constexpr auto ZN = reference{}; inline constexpr auto YN = reference{}; +} // namespace force_references + +namespace references { + +using namespace force_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/frequency.h b/src/systems/si/include/units/isq/si/frequency.h index 61e4ab9f..90447db8 100644 --- a/src/systems/si/include/units/isq/si/frequency.h +++ b/src/systems/si/include/units/isq/si/frequency.h @@ -135,7 +135,7 @@ constexpr auto operator"" _q_YHz(long double l) { return frequency{}; inline constexpr auto yHz = reference{}; @@ -155,6 +155,12 @@ inline constexpr auto EHz = reference{}; inline constexpr auto ZHz = reference{}; inline constexpr auto YHz = reference{}; +} // namespace frequency_references + +namespace references { + +using namespace frequency_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/inductance.h b/src/systems/si/include/units/isq/si/inductance.h index a5853aae..f373952d 100644 --- a/src/systems/si/include/units/isq/si/inductance.h +++ b/src/systems/si/include/units/isq/si/inductance.h @@ -137,7 +137,7 @@ constexpr auto operator"" _q_YH(long double l) { return inductance{}; inline constexpr auto yH = reference{}; @@ -157,6 +157,12 @@ inline constexpr auto EH = reference{}; inline constexpr auto ZH = reference{}; inline constexpr auto YH = reference{}; +} // namespace inductance_references + +namespace references { + +using namespace inductance_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/length.h b/src/systems/si/include/units/isq/si/length.h index a608b5ee..d1069252 100644 --- a/src/systems/si/include/units/isq/si/length.h +++ b/src/systems/si/include/units/isq/si/length.h @@ -161,7 +161,7 @@ constexpr auto operator"" _q_au(long double l) { return length{}; inline constexpr auto ym = reference{}; @@ -186,6 +186,12 @@ inline constexpr auto Zm = reference{}; inline constexpr auto Ym = reference{}; inline constexpr auto au = reference{}; +} // namespace length_references + +namespace references { + +using namespace length_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/luminous_intensity.h b/src/systems/si/include/units/isq/si/luminous_intensity.h index cef5eca6..3bd8288f 100644 --- a/src/systems/si/include/units/isq/si/luminous_intensity.h +++ b/src/systems/si/include/units/isq/si/luminous_intensity.h @@ -155,7 +155,7 @@ constexpr auto operator"" _q_Ycd(long double l) { return luminous_intensity{}; inline constexpr auto ycd = reference{}; @@ -179,6 +179,12 @@ inline constexpr auto Ecd = reference{}; inline constexpr auto Zcd = reference{}; inline constexpr auto Ycd = reference{}; +} // namespace luminous_intensity_references + +namespace references { + +using namespace luminous_intensity_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/magnetic_flux.h b/src/systems/si/include/units/isq/si/magnetic_flux.h index 9c7d6939..44305370 100644 --- a/src/systems/si/include/units/isq/si/magnetic_flux.h +++ b/src/systems/si/include/units/isq/si/magnetic_flux.h @@ -137,7 +137,7 @@ constexpr auto operator"" _q_YWb(long double l) { return magnetic_flux{}; inline constexpr auto yWb = reference{}; @@ -157,6 +157,12 @@ inline constexpr auto EWb = reference{}; inline constexpr auto ZWb = reference{}; inline constexpr auto YWb = reference{}; +} // namespace magnetic_flux_references + +namespace references { + +using namespace magnetic_flux_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/magnetic_induction.h b/src/systems/si/include/units/isq/si/magnetic_induction.h index 2d275f73..6b0320ae 100644 --- a/src/systems/si/include/units/isq/si/magnetic_induction.h +++ b/src/systems/si/include/units/isq/si/magnetic_induction.h @@ -145,7 +145,7 @@ constexpr auto operator"" _q_G(long double l) { return magnetic_induction{}; inline constexpr auto yT = reference{}; @@ -166,6 +166,12 @@ inline constexpr auto ZT = reference{}; inline constexpr auto YT = reference{}; inline constexpr auto G = reference{}; +} // namespace magnetic_induction_references + +namespace references { + +using namespace magnetic_induction_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/mass.h b/src/systems/si/include/units/isq/si/mass.h index 7a2c248b..32a7d94b 100644 --- a/src/systems/si/include/units/isq/si/mass.h +++ b/src/systems/si/include/units/isq/si/mass.h @@ -268,7 +268,7 @@ constexpr auto operator"" _q_Da(long double l) { return mass{}; inline constexpr auto yg = reference{}; @@ -314,6 +314,12 @@ inline constexpr auto Zt = reference{}; inline constexpr auto Yt = reference{}; inline constexpr auto Da = reference{}; +} // namespace mass_references + +namespace references { + +using namespace mass_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/power.h b/src/systems/si/include/units/isq/si/power.h index 0b352b40..d741def6 100644 --- a/src/systems/si/include/units/isq/si/power.h +++ b/src/systems/si/include/units/isq/si/power.h @@ -136,7 +136,7 @@ constexpr auto operator"" _q_YW(long double l) { return power{}; inline constexpr auto yW = reference{}; @@ -156,6 +156,12 @@ inline constexpr auto EW = reference{}; inline constexpr auto ZW = reference{}; inline constexpr auto YW = reference{}; +} // namespace power_references + +namespace references { + +using namespace power_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/pressure.h b/src/systems/si/include/units/isq/si/pressure.h index 9f03d8ac..5ffc6522 100644 --- a/src/systems/si/include/units/isq/si/pressure.h +++ b/src/systems/si/include/units/isq/si/pressure.h @@ -157,7 +157,7 @@ constexpr auto operator"" _q_YPa(long double l) { return pressure{}; inline constexpr auto yPa = reference{}; @@ -181,6 +181,12 @@ inline constexpr auto EPa = reference{}; inline constexpr auto ZPa = reference{}; inline constexpr auto YPa = reference{}; +} // namespace pressure_references + +namespace references { + +using namespace pressure_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/radioactivity.h b/src/systems/si/include/units/isq/si/radioactivity.h index 7738f323..7531edd1 100644 --- a/src/systems/si/include/units/isq/si/radioactivity.h +++ b/src/systems/si/include/units/isq/si/radioactivity.h @@ -155,7 +155,7 @@ constexpr auto operator"" _q_YBq(long double l) { return radioactivity{}; inline constexpr auto yBq = reference{}; @@ -179,6 +179,12 @@ inline constexpr auto EBq = reference{}; inline constexpr auto ZBq = reference{}; inline constexpr auto YBq = reference{}; +} // namespace radioactivity_references + +namespace references { + +using namespace radioactivity_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/resistance.h b/src/systems/si/include/units/isq/si/resistance.h index 7d46f76e..cf689bb2 100644 --- a/src/systems/si/include/units/isq/si/resistance.h +++ b/src/systems/si/include/units/isq/si/resistance.h @@ -137,7 +137,7 @@ constexpr auto operator"" _q_YR(long double l) { return resistance{}; inline constexpr auto yR = reference{}; @@ -157,6 +157,12 @@ inline constexpr auto ER = reference{}; inline constexpr auto ZR = reference{}; inline constexpr auto YR = reference{}; +} // namespace resistance_references + +namespace references { + +using namespace resistance_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/thermodynamic_temperature.h b/src/systems/si/include/units/isq/si/thermodynamic_temperature.h index 902dbc62..f2bbf7cf 100644 --- a/src/systems/si/include/units/isq/si/thermodynamic_temperature.h +++ b/src/systems/si/include/units/isq/si/thermodynamic_temperature.h @@ -54,10 +54,16 @@ constexpr auto operator"" _q_K(long double l) { return thermodynamic_temperature #ifdef UNITS_REFERENCES -namespace references { +namespace thermodynamic_temperature_references { inline constexpr auto K = reference{}; +} // namespace thermodynamic_temperature_references + +namespace references { + +using namespace thermodynamic_temperature_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/time.h b/src/systems/si/include/units/isq/si/time.h index bfc2e13c..82f9febe 100644 --- a/src/systems/si/include/units/isq/si/time.h +++ b/src/systems/si/include/units/isq/si/time.h @@ -110,7 +110,7 @@ constexpr auto operator"" _q_d(long double l) { return time(l) #ifdef UNITS_REFERENCES -namespace references { +namespace time_references { inline constexpr auto ys = reference{}; inline constexpr auto zs = reference{}; @@ -125,7 +125,13 @@ inline constexpr auto min = reference{}; inline constexpr auto h = reference{}; inline constexpr auto d = reference{}; -} // namespace references +} // namespace time_references + +namespace references { + +using namespace time_references; + +} // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/voltage.h b/src/systems/si/include/units/isq/si/voltage.h index 8d323900..a124f1fe 100644 --- a/src/systems/si/include/units/isq/si/voltage.h +++ b/src/systems/si/include/units/isq/si/voltage.h @@ -157,7 +157,7 @@ constexpr auto operator"" _q_YV(long double l) { return voltage{}; inline constexpr auto yV = reference{}; @@ -181,6 +181,12 @@ inline constexpr auto EV = reference{}; inline constexpr auto ZV = reference{}; inline constexpr auto YV = reference{}; +} // namespace voltage_references + +namespace references { + +using namespace voltage_references; + } // namespace references #endif // UNITS_REFERENCES diff --git a/src/systems/si/include/units/isq/si/volume.h b/src/systems/si/include/units/isq/si/volume.h index 505f7f31..dc6bdfe8 100644 --- a/src/systems/si/include/units/isq/si/volume.h +++ b/src/systems/si/include/units/isq/si/volume.h @@ -261,7 +261,7 @@ constexpr auto operator"" _q_Yl(long double l) { return volume{}; inline constexpr auto ym3 = reference{}; @@ -306,6 +306,12 @@ inline constexpr auto El = reference{}; inline constexpr auto Zl = reference{}; inline constexpr auto Yl = reference{}; +} // namespace volume_references + +namespace references { + +using namespace volume_references; + } // namespace references #endif // UNITS_REFERENCES