From 9054420d08a975cd7484fc3ce53acc1a684db7a2 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Thu, 1 Apr 2021 09:36:55 +0200 Subject: [PATCH] build: Added an option to disable UDLs support Now it is time to get rid of UDLs from tests and examples and then disable them by default. --- conanfile.py | 3 +++ docs/usage.rst | 19 +++++++++++++++++++ src/CMakeLists.txt | 11 ++++++++--- src/cmake/AddUnitsModule.cmake | 11 +++++++++++ src/core/CMakeLists.txt | 4 ++++ src/core/include/units/generic/angle.h | 4 ++++ src/systems/isq-iec80000/CMakeLists.txt | 2 +- .../units/isq/iec80000/modulation_rate.h | 4 ++++ .../units/isq/iec80000/storage_capacity.h | 4 ++++ .../units/isq/iec80000/traffic_intensity.h | 4 ++++ .../units/isq/iec80000/transfer_rate.h | 4 ++++ src/systems/isq-natural/CMakeLists.txt | 2 +- src/systems/si-cgs/CMakeLists.txt | 2 +- .../include/units/isq/si/cgs/acceleration.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/area.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/energy.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/force.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/length.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/mass.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/power.h | 4 ++++ .../include/units/isq/si/cgs/pressure.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/speed.h | 4 ++++ .../si-cgs/include/units/isq/si/cgs/time.h | 4 ++++ src/systems/si-fps/CMakeLists.txt | 2 +- .../include/units/isq/si/fps/acceleration.h | 4 ++++ .../si-fps/include/units/isq/si/fps/area.h | 4 ++++ .../si-fps/include/units/isq/si/fps/density.h | 4 ++++ .../si-fps/include/units/isq/si/fps/energy.h | 4 ++++ .../si-fps/include/units/isq/si/fps/force.h | 4 ++++ .../si-fps/include/units/isq/si/fps/length.h | 4 ++++ .../si-fps/include/units/isq/si/fps/mass.h | 4 ++++ .../si-fps/include/units/isq/si/fps/power.h | 4 ++++ .../include/units/isq/si/fps/pressure.h | 4 ++++ .../si-fps/include/units/isq/si/fps/speed.h | 4 ++++ .../si-fps/include/units/isq/si/fps/time.h | 4 ++++ .../si-fps/include/units/isq/si/fps/volume.h | 4 ++++ src/systems/si-iau/CMakeLists.txt | 2 +- .../si-iau/include/units/isq/si/iau/length.h | 4 ++++ src/systems/si-imperial/CMakeLists.txt | 2 +- .../include/units/isq/si/imperial/length.h | 4 ++++ src/systems/si-international/CMakeLists.txt | 2 +- .../include/units/isq/si/international/area.h | 4 ++++ .../units/isq/si/international/length.h | 4 ++++ .../units/isq/si/international/speed.h | 4 ++++ .../units/isq/si/international/volume.h | 4 ++++ src/systems/si-typographic/CMakeLists.txt | 2 +- .../include/units/isq/si/typographic/length.h | 4 ++++ src/systems/si-us/CMakeLists.txt | 2 +- .../si-us/include/units/isq/si/us/length.h | 4 ++++ src/systems/si/CMakeLists.txt | 2 +- .../si/include/units/isq/si/absorbed_dose.h | 4 ++++ .../si/include/units/isq/si/acceleration.h | 4 ++++ .../units/isq/si/amount_of_substance.h | 4 ++++ .../include/units/isq/si/angular_velocity.h | 4 ++++ src/systems/si/include/units/isq/si/area.h | 4 ++++ .../si/include/units/isq/si/capacitance.h | 4 ++++ .../include/units/isq/si/catalytic_activity.h | 4 ++++ .../si/include/units/isq/si/charge_density.h | 4 ++++ .../si/include/units/isq/si/concentration.h | 4 ++++ .../si/include/units/isq/si/conductance.h | 4 ++++ .../si/include/units/isq/si/current_density.h | 4 ++++ src/systems/si/include/units/isq/si/density.h | 4 ++++ .../include/units/isq/si/dynamic_viscosity.h | 4 ++++ .../si/include/units/isq/si/electric_charge.h | 4 ++++ .../include/units/isq/si/electric_current.h | 4 ++++ .../units/isq/si/electric_field_strength.h | 4 ++++ src/systems/si/include/units/isq/si/energy.h | 4 ++++ .../si/include/units/isq/si/energy_density.h | 4 ++++ src/systems/si/include/units/isq/si/force.h | 4 ++++ .../si/include/units/isq/si/frequency.h | 4 ++++ .../si/include/units/isq/si/heat_capacity.h | 4 ++++ .../si/include/units/isq/si/inductance.h | 4 ++++ src/systems/si/include/units/isq/si/length.h | 4 ++++ .../si/include/units/isq/si/luminance.h | 4 ++++ .../include/units/isq/si/luminous_intensity.h | 4 ++++ .../si/include/units/isq/si/magnetic_flux.h | 4 ++++ .../include/units/isq/si/magnetic_induction.h | 4 ++++ src/systems/si/include/units/isq/si/mass.h | 4 ++++ .../si/include/units/isq/si/molar_energy.h | 4 ++++ .../si/include/units/isq/si/momentum.h | 4 ++++ .../si/include/units/isq/si/permeability.h | 4 ++++ .../si/include/units/isq/si/permittivity.h | 4 ++++ src/systems/si/include/units/isq/si/power.h | 4 ++++ .../si/include/units/isq/si/pressure.h | 4 ++++ .../si/include/units/isq/si/radioactivity.h | 4 ++++ .../si/include/units/isq/si/resistance.h | 4 ++++ src/systems/si/include/units/isq/si/speed.h | 4 ++++ .../si/include/units/isq/si/surface_tension.h | 4 ++++ .../units/isq/si/thermal_conductivity.h | 4 ++++ .../units/isq/si/thermodynamic_temperature.h | 4 ++++ src/systems/si/include/units/isq/si/time.h | 4 ++++ src/systems/si/include/units/isq/si/torque.h | 4 ++++ src/systems/si/include/units/isq/si/voltage.h | 4 ++++ src/systems/si/include/units/isq/si/volume.h | 4 ++++ 94 files changed, 371 insertions(+), 13 deletions(-) diff --git a/conanfile.py b/conanfile.py index 28ba6bae..4cca3d28 100644 --- a/conanfile.py +++ b/conanfile.py @@ -41,10 +41,12 @@ class UnitsConan(ConanFile): "gsl-lite/0.37.0" ) options = { + "udls": [True, False], "downcast_mode": ["off", "on", "auto"], "build_docs": [True, False] } default_options = { + "udls": True, "downcast_mode": "on", "build_docs": True } @@ -116,6 +118,7 @@ class UnitsConan(ConanFile): def generate(self): tc = CMakeToolchain(self) + tc.variables["UNITS_UDLS"] = self.options.udls tc.variables["UNITS_DOWNCAST_MODE"] = str(self.options.downcast_mode).upper() # if self._run_tests: # TODO Enable this when environment is supported in the Conan toolchain tc.variables["UNITS_BUILD_DOCS"] = self.options.build_docs diff --git a/docs/usage.rst b/docs/usage.rst index 2fef1d3d..a5b172d1 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -123,6 +123,15 @@ It also runs unit tests during Conan build. Conan Options ^^^^^^^^^^^^^ +udls +++++ + +**Values**: ``True``/``False`` + +**Defaulted to**: ``True`` + +Determines if library should provide User Defined Literals (UDLs) for quantities of various units. + downcast_mode +++++++++++++ @@ -149,6 +158,16 @@ Additionally, enables project documentation generation when the project is being CMake Options ^^^^^^^^^^^^^ +UNITS_UDLS ++++++++++++++++++++ + +**Values**: ``ON``/``OFF`` + +**Defaulted to**: ``ON`` + +Equivalent to `udls`_. + + UNITS_DOWNCAST_MODE +++++++++++++++++++ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 23119f18..e6f79c03 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -27,15 +27,20 @@ project(mp-units ) option(UNITS_AS_SYSTEM_HEADERS "Exports library as system headers" OFF) -if(UNITS_AS_SYSTEM_HEADERS) - set(units_as_system SYSTEM) -endif() +option(UNITS_UDLS "Enables definitions of User Defined Literals (UDLs) provided for quantities of various units" ON) + +message(STATUS "UNITS_AS_SYSTEM_HEADERS: ${UNITS_AS_SYSTEM_HEADERS}") +message(STATUS "UNITS_UDLS: ${UNITS_UDLS}") list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include(AddUnitsModule) include(GNUInstallDirs) +if(UNITS_AS_SYSTEM_HEADERS) + set(units_as_system SYSTEM) +endif() + add_subdirectory(core) add_subdirectory(core-fmt) add_subdirectory(core-io) diff --git a/src/cmake/AddUnitsModule.cmake b/src/cmake/AddUnitsModule.cmake index a9c9a83c..cfeffe2d 100644 --- a/src/cmake/AddUnitsModule.cmake +++ b/src/cmake/AddUnitsModule.cmake @@ -38,3 +38,14 @@ function(add_units_module name) install(TARGETS mp-units-${name} EXPORT mp-unitsTargets) install(DIRECTORY include/units TYPE INCLUDE) endfunction() + + +# +# add_units_systems(ModuleName ...) +# +function(add_units_system name) + add_units_module(${name} ${ARGN}) + if(UNITS_UDLS) + target_compile_definitions(mp-units-${name} INTERFACE UNITS_UDLS=1) + endif() +endfunction() diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index d4f4f06c..6041b0aa 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -55,6 +55,10 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") ) endif() +if(UNITS_UDLS) + target_compile_definitions(mp-units-core INTERFACE UNITS_UDLS=1) +endif() + if(DEFINED UNITS_DOWNCAST_MODE) set(downcast_mode_options OFF ON AUTO) list(FIND downcast_mode_options "${UNITS_DOWNCAST_MODE}" downcast_mode) diff --git a/src/core/include/units/generic/angle.h b/src/core/include/units/generic/angle.h index 6110bc54..912bfd5a 100644 --- a/src/core/include/units/generic/angle.h +++ b/src/core/include/units/generic/angle.h @@ -43,6 +43,8 @@ concept Angle = QuantityOfT; template> U, Representation Rep = double> using angle = quantity, U, Rep>; +#if UNITS_UDLS + inline namespace literals { // rad @@ -51,6 +53,8 @@ constexpr auto operator"" _q_rad(long double l) { return angle, radian>{}; diff --git a/src/systems/isq-iec80000/CMakeLists.txt b/src/systems/isq-iec80000/CMakeLists.txt index 9f37c6f6..b02996d9 100644 --- a/src/systems/isq-iec80000/CMakeLists.txt +++ b/src/systems/isq-iec80000/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(isq-iec80000 mp-units::si) +add_units_system(isq-iec80000 mp-units::si) 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 46b7cab4..7f3b394f 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 @@ -50,6 +50,8 @@ using dim_modulation_rate = si::dim_frequency; template U, Representation Rep = double> using modulation_rate = quantity; +#if UNITS_UDLS + inline namespace literals { constexpr auto operator"" _q_Bd(unsigned long long l) { gsl_ExpectsAudit(std::in_range(l)); return modulation_rate(static_cast(l)); } @@ -64,6 +66,8 @@ constexpr auto operator"" _q_YBd(unsigned long long l) { gsl_ExpectsAudit(std::i } // namespace literals +#endif // UNITS_UDLS + namespace references { inline constexpr auto Bd = reference{}; 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 b41c8142..da9b97b7 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 @@ -79,6 +79,8 @@ concept StorageCapacity = QuantityOf; template U, Representation Rep = double> using storage_capacity = quantity; +#if UNITS_UDLS + inline namespace literals { // bits @@ -121,6 +123,8 @@ constexpr auto operator"" _q_PiB(unsigned long long l) { gsl_ExpectsAudit(std::i } // namespace literals +#endif // UNITS_UDLS + namespace references { // bits 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 7460f4f8..325a4202 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 @@ -43,12 +43,16 @@ concept TrafficIntensity = QuantityOf; template U, Representation Rep = double> using traffic_intensity = quantity; +#if UNITS_UDLS + inline namespace literals { constexpr auto operator"" _q_E(unsigned long long l) { gsl_ExpectsAudit(std::in_range(l)); return traffic_intensity(static_cast(l)); } } // namespace literals +#endif // UNITS_UDLS + namespace references { inline constexpr auto E = reference{}; 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 cb8fe13a..98ba7cd1 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 @@ -52,6 +52,8 @@ concept TransferRate = QuantityOf; template U, Representation Rep = double> using transfer_rate = quantity; +#if UNITS_UDLS + inline namespace literals { constexpr auto operator"" _q_B_per_s(unsigned long long l) { gsl_ExpectsAudit(std::in_range(l)); return transfer_rate(static_cast(l)); } @@ -66,4 +68,6 @@ constexpr auto operator"" _q_YB_per_s(unsigned long long l) { gsl_ExpectsAudit(s } // namespace literals +#endif // UNITS_UDLS + } // namespace units::isq::iec80000 diff --git a/src/systems/isq-natural/CMakeLists.txt b/src/systems/isq-natural/CMakeLists.txt index 7f9353b4..1de5f50f 100644 --- a/src/systems/isq-natural/CMakeLists.txt +++ b/src/systems/isq-natural/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(isq-natural mp-units::isq) +add_units_system(isq-natural mp-units::isq) diff --git a/src/systems/si-cgs/CMakeLists.txt b/src/systems/si-cgs/CMakeLists.txt index 10b16ae9..ea264284 100644 --- a/src/systems/si-cgs/CMakeLists.txt +++ b/src/systems/si-cgs/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(si-cgs mp-units::si) +add_units_system(si-cgs mp-units::si) 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 f91d4d4a..34f006c7 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 @@ -40,6 +40,8 @@ struct dim_acceleration : isq::dim_acceleration U, Representation Rep = double> using acceleration = quantity; +#if UNITS_UDLS + inline namespace literals { // Gal @@ -48,6 +50,8 @@ constexpr auto operator"" _q_Gal(long double l) { return acceleration{}; 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 bdc1ca09..9d50ea35 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 @@ -42,6 +42,8 @@ struct dim_area : isq::dim_area {}; template U, Representation Rep = double> using area = quantity; +#if UNITS_UDLS + inline namespace literals { // cm2 @@ -50,6 +52,8 @@ constexpr auto operator"" _q_cm2(long double l) { return area{}; 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 9e4d2dc7..aa8c39c1 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 @@ -42,6 +42,8 @@ struct dim_energy : isq::dim_energy {}; template U, Representation Rep = double> using energy = quantity; +#if UNITS_UDLS + inline namespace literals { // erg @@ -50,6 +52,8 @@ constexpr auto operator"" _q_erg(long double l) { return energy{}; 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 2fe9a1eb..84ad1e90 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 @@ -43,6 +43,8 @@ struct dim_force : isq::dim_force { template U, Representation Rep = double> using force = quantity; +#if UNITS_UDLS + inline namespace literals { // dyn @@ -51,6 +53,8 @@ constexpr auto operator"" _q_dyn(long double l) { return force{}; 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 78bf5f89..1aa3c735 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 @@ -41,6 +41,8 @@ struct dim_length : isq::dim_length {}; template U, Representation Rep = double> using length = quantity; +#if UNITS_UDLS + inline namespace literals { // cm @@ -49,6 +51,8 @@ constexpr auto operator"" _q_cm(long double l) { return length{}; 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 ed599f37..a7f9e43a 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 @@ -41,6 +41,8 @@ struct dim_mass : isq::dim_mass {}; template U, Representation Rep = double> using mass = quantity; +#if UNITS_UDLS + inline namespace literals { // g @@ -49,6 +51,8 @@ constexpr auto operator"" _q_g(long double l) { return mass(l } // namespace literals +#endif // UNITS_UDLS + namespace references { inline constexpr auto g = reference{}; 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 9bec8b68..e1511a6a 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 @@ -41,6 +41,8 @@ struct dim_power : isq::dim_power U, Representation Rep = double> using power = quantity; +#if UNITS_UDLS + inline namespace literals { // erg/s @@ -49,4 +51,6 @@ constexpr auto operator"" _q_erg_per_s(long double l) { return power U, Representation Rep = double> using pressure = quantity; +#if UNITS_UDLS + inline namespace literals { // Ba @@ -51,6 +53,8 @@ constexpr auto operator"" _q_Ba(long double l) { return pressure{}; 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 c054965c..faed0b38 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 @@ -40,6 +40,8 @@ struct dim_speed : isq::dim_speed U, Representation Rep = double> using speed = quantity; +#if UNITS_UDLS + inline namespace literals { // cm/s @@ -48,4 +50,6 @@ constexpr auto operator"" _q_cm_per_s(long double l) { return speed U, Representation Rep = double> using acceleration = quantity; +#if UNITS_UDLS + inline namespace literals { // ft/s2 @@ -47,4 +49,6 @@ constexpr auto operator"" _q_ft_per_s2(long double l) { return acceleration {}; template U, Representation Rep = double> using area = quantity; +#if UNITS_UDLS + inline namespace literals { // ft2 @@ -49,6 +51,8 @@ constexpr auto operator"" _q_ft2(long double l) { return 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 2bb87f89..15ca008a 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 @@ -41,6 +41,8 @@ struct dim_density : isq::dim_density U, Representation Rep = double> using density = quantity; +#if UNITS_UDLS + inline namespace literals { // lb/ft³ @@ -49,4 +51,6 @@ constexpr auto operator"" _q_lb_per_ft3(long double l) { return density U, Representation Rep = double> using energy = quantity; +#if UNITS_UDLS + inline namespace literals { // foot poundal @@ -57,4 +59,6 @@ constexpr auto operator"" _q_ft_lbf(long double l) { return energy U, Representation Rep = double> using force = quantity; +#if UNITS_UDLS + inline namespace literals { // poundal @@ -68,6 +70,8 @@ constexpr auto operator"" _q_klbf(long double l) { return force{}; 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 75866ac1..1da2f9b8 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 @@ -59,6 +59,8 @@ struct dim_length : isq::dim_length {}; template U, Representation Rep = double> using length = quantity; +#if UNITS_UDLS + inline namespace literals { // Thousandth @@ -98,6 +100,8 @@ constexpr auto operator"" _q_naut_mi(long double l) { return length{}; 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 20dc112a..e1f650ff 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 @@ -58,6 +58,8 @@ struct short_ton : named_scaled_unit{}; +#if UNITS_UDLS + inline namespace literals { // Grain @@ -98,6 +100,8 @@ constexpr auto operator"" _q_lton(long double l) { return mass{}; 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 72e57229..6d6ffc5f 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 @@ -46,6 +46,8 @@ struct horse_power : named_scaled_unit U, Representation Rep = double> using power = quantity; +#if UNITS_UDLS + inline namespace literals { // foot pound force per second @@ -62,6 +64,8 @@ constexpr auto operator"" _q_hp(long double l) { return 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 7adf7c81..321652c6 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 @@ -49,6 +49,8 @@ struct pound_force_per_inch_sq : named_scaled_unit {}; +#if UNITS_UDLS + inline namespace literals { // Poundal per square foot @@ -65,6 +67,8 @@ constexpr auto operator"" _q_kpsi(long double l) { return 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 8a9db5ac..03abcfe4 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 @@ -48,6 +48,8 @@ struct nautical_mile_per_hour : named_deduced_unit {}; +#if UNITS_UDLS + inline namespace literals { // ft/s @@ -64,6 +66,8 @@ constexpr auto operator"" _q_knot(long double l) { return speed{}; 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 c9f97bad..514b0229 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 @@ -41,12 +41,16 @@ using si::hour; using si::dim_time; using si::time; +#if UNITS_UDLS + inline namespace literals { using si::literals::operator"" _q_s; } // namespace literals +#endif // UNITS_UDLS + namespace references { using si::references::s; 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 ac732085..acee327c 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 @@ -42,6 +42,8 @@ struct cubic_yard : deduced_unit {}; template U, Representation Rep = double> using volume = quantity; +#if UNITS_UDLS + inline namespace literals { // ft3 @@ -54,6 +56,8 @@ constexpr auto operator"" _q_yd3(long double l) { return volume{}; diff --git a/src/systems/si-iau/CMakeLists.txt b/src/systems/si-iau/CMakeLists.txt index ce9984a8..1af29347 100644 --- a/src/systems/si-iau/CMakeLists.txt +++ b/src/systems/si-iau/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(si-iau mp-units::si) +add_units_system(si-iau mp-units::si) 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 b30e0733..325cf010 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 @@ -44,6 +44,8 @@ struct parsec : named_scaled_unit {}; +#if UNITS_UDLS + inline namespace literals { // ly @@ -60,6 +62,8 @@ constexpr auto operator"" _q_angstrom(long double l) { return si::length{}; diff --git a/src/systems/si-imperial/CMakeLists.txt b/src/systems/si-imperial/CMakeLists.txt index f99f274b..b483d0e9 100644 --- a/src/systems/si-imperial/CMakeLists.txt +++ b/src/systems/si-imperial/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(si-imperial mp-units::si) +add_units_system(si-imperial mp-units::si) 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 62e9cc7f..82fdccbb 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 @@ -40,6 +40,8 @@ struct chain : named_scaled_unit {}; +#if UNITS_UDLS + inline namespace literals { // ch @@ -52,6 +54,8 @@ constexpr auto operator"" _q_rd(long double l) { return si::length{}; diff --git a/src/systems/si-international/CMakeLists.txt b/src/systems/si-international/CMakeLists.txt index e8b2716a..e98ad8f0 100644 --- a/src/systems/si-international/CMakeLists.txt +++ b/src/systems/si-international/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(si-international mp-units::si) +add_units_system(si-international mp-units::si) 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 a87ff644..7597220c 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 @@ -37,6 +37,8 @@ namespace units::isq::si::international { struct square_foot : deduced_unit {}; +#if UNITS_UDLS + inline namespace literals { // ft2 @@ -45,6 +47,8 @@ constexpr auto operator"" _q_ft2(long double l) { return si::area{}; 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 846a86de..387fb829 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 @@ -66,6 +66,8 @@ struct thou : named_scaled_unit { // https://en.wikipedia.org/wiki/Thousandth_of_an_inch using mil = thou; +#if UNITS_UDLS + inline namespace literals { // yd @@ -102,6 +104,8 @@ constexpr auto operator"" _q_mil(long double l) { return si::length{}; diff --git a/src/systems/si-international/include/units/isq/si/international/speed.h b/src/systems/si-international/include/units/isq/si/international/speed.h index bf63298f..32d33154 100644 --- a/src/systems/si-international/include/units/isq/si/international/speed.h +++ b/src/systems/si-international/include/units/isq/si/international/speed.h @@ -36,6 +36,8 @@ namespace units::isq::si::international { struct mile_per_hour : deduced_unit {}; +#if UNITS_UDLS + inline namespace literals { // mi/h @@ -44,4 +46,6 @@ constexpr auto operator"" _q_mi_per_h(long double l) { return si::speed {}; +#if UNITS_UDLS + inline namespace literals { // ft3 @@ -45,6 +47,8 @@ constexpr auto operator"" _q_ft3(long double l) { return si::volume{}; diff --git a/src/systems/si-typographic/CMakeLists.txt b/src/systems/si-typographic/CMakeLists.txt index 10d0e4d7..0a0974de 100644 --- a/src/systems/si-typographic/CMakeLists.txt +++ b/src/systems/si-typographic/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(si-typographic mp-units::si) +add_units_system(si-typographic mp-units::si) 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 10a5e30b..a80aefc4 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 @@ -41,6 +41,8 @@ struct pica_prn : named_scaled_unit {}; struct point_prn : named_scaled_unit {}; +#if UNITS_UDLS + inline namespace literals { // pica comp @@ -61,6 +63,8 @@ constexpr auto operator"" _q_point_prn(long double l) { return si::length{}; diff --git a/src/systems/si-us/CMakeLists.txt b/src/systems/si-us/CMakeLists.txt index 69caa8e8..3c6dbe40 100644 --- a/src/systems/si-us/CMakeLists.txt +++ b/src/systems/si-us/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(si-us mp-units::si) +add_units_system(si-us mp-units::si) 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 2c7da9d4..9d4d161b 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 @@ -45,6 +45,8 @@ struct fathom : named_scaled_unit {}; +#if UNITS_UDLS + inline namespace literals { // ft @@ -61,6 +63,8 @@ constexpr auto operator"" _q_mi_us(long double l) { return si::length{}; diff --git a/src/systems/si/CMakeLists.txt b/src/systems/si/CMakeLists.txt index bb5098b5..3bcd06f7 100644 --- a/src/systems/si/CMakeLists.txt +++ b/src/systems/si/CMakeLists.txt @@ -22,4 +22,4 @@ cmake_minimum_required(VERSION 3.15) -add_units_module(si mp-units::isq) +add_units_system(si mp-units::isq) 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 f22805e5..5e87a28f 100644 --- a/src/systems/si/include/units/isq/si/absorbed_dose.h +++ b/src/systems/si/include/units/isq/si/absorbed_dose.h @@ -62,6 +62,8 @@ struct dim_absorbed_dose : isq::dim_absorbed_dose U, Representation Rep = double> using absorbed_dose = quantity; +#if UNITS_UDLS + inline namespace literals { // Gy @@ -150,6 +152,8 @@ constexpr auto operator"" _q_YGy(long double l) { return absorbed_dose{}; diff --git a/src/systems/si/include/units/isq/si/acceleration.h b/src/systems/si/include/units/isq/si/acceleration.h index 6d57ab0a..5137e535 100644 --- a/src/systems/si/include/units/isq/si/acceleration.h +++ b/src/systems/si/include/units/isq/si/acceleration.h @@ -39,6 +39,8 @@ struct dim_acceleration : isq::dim_acceleration U, Representation Rep = double> using acceleration = quantity; +#if UNITS_UDLS + inline namespace literals { // m/s2 @@ -47,4 +49,6 @@ constexpr auto operator"" _q_m_per_s2(long double l) { return acceleration {}; template U, Representation Rep = double> using amount_of_substance = quantity; +#if UNITS_UDLS + inline namespace literals { // mol @@ -49,6 +51,8 @@ constexpr auto operator"" _q_mol(long double l) { return amount_of_substance{}; diff --git a/src/systems/si/include/units/isq/si/angular_velocity.h b/src/systems/si/include/units/isq/si/angular_velocity.h index d7dc8a79..16641ef9 100644 --- a/src/systems/si/include/units/isq/si/angular_velocity.h +++ b/src/systems/si/include/units/isq/si/angular_velocity.h @@ -41,6 +41,8 @@ struct dim_angular_velocity : isq::dim_angular_velocity U, Representation Rep = double> using angular_velocity = quantity; +#if UNITS_UDLS + inline namespace literals { // rad / s @@ -49,4 +51,6 @@ constexpr auto operator"" _q_rad_per_s(long double l) { return angular_velocity< } // namespace literals +#endif // UNITS_UDLS + } // namespace units::isq::si diff --git a/src/systems/si/include/units/isq/si/area.h b/src/systems/si/include/units/isq/si/area.h index e500b2c5..96b955d5 100644 --- a/src/systems/si/include/units/isq/si/area.h +++ b/src/systems/si/include/units/isq/si/area.h @@ -63,6 +63,8 @@ struct hectare : alias_unit {}; template U, Representation Rep = double> using area = quantity; +#if UNITS_UDLS + inline namespace literals { // m2 @@ -155,6 +157,8 @@ constexpr auto operator"" _q_ha(long double l) { return area{}; diff --git a/src/systems/si/include/units/isq/si/capacitance.h b/src/systems/si/include/units/isq/si/capacitance.h index 023ed580..e312b3f5 100644 --- a/src/systems/si/include/units/isq/si/capacitance.h +++ b/src/systems/si/include/units/isq/si/capacitance.h @@ -63,6 +63,8 @@ struct dim_capacitance : isq::dim_capacitance U, Representation Rep = double> using capacitance = quantity; +#if UNITS_UDLS + inline namespace literals { // F @@ -151,6 +153,8 @@ constexpr auto operator"" _q_YF(long double l) { return capacitance{}; 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 d6ee65aa..8dc8574c 100644 --- a/src/systems/si/include/units/isq/si/catalytic_activity.h +++ b/src/systems/si/include/units/isq/si/catalytic_activity.h @@ -65,6 +65,8 @@ struct dim_catalytic_activity : isq::dim_catalytic_activity U, Representation Rep = double> using catalytic_activity = quantity; +#if UNITS_UDLS + inline namespace literals { // kat @@ -157,6 +159,8 @@ constexpr auto operator"" _q_U(long double l) { return catalytic_activity{}; 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 694419bb..a7a0a692 100644 --- a/src/systems/si/include/units/isq/si/charge_density.h +++ b/src/systems/si/include/units/isq/si/charge_density.h @@ -47,6 +47,8 @@ using charge_density = quantity; template U, Representation Rep = double> using surface_charge_density = quantity; +#if UNITS_UDLS + inline namespace literals { // C/m³ @@ -59,4 +61,6 @@ constexpr auto operator"" _q_C_per_m2(long double l) { return surface_charge_den } // namespace literals +#endif // UNITS_UDLS + } // namespace units::isq::si diff --git a/src/systems/si/include/units/isq/si/concentration.h b/src/systems/si/include/units/isq/si/concentration.h index 5284502c..3d969a4d 100644 --- a/src/systems/si/include/units/isq/si/concentration.h +++ b/src/systems/si/include/units/isq/si/concentration.h @@ -40,6 +40,8 @@ struct dim_concentration : isq::dim_concentration U, Representation Rep = double> using concentration = quantity; +#if UNITS_UDLS + inline namespace literals { // mol/m³ @@ -48,5 +50,7 @@ constexpr auto operator"" _q_mol_per_m3(long double l) { return concentration U, Representation Rep = double> using conductance = quantity; +#if UNITS_UDLS + inline namespace literals { // R @@ -130,6 +132,8 @@ constexpr auto operator"" _q_YS(long double l) { return conductance{}; 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 d67fa67b..852df08f 100644 --- a/src/systems/si/include/units/isq/si/current_density.h +++ b/src/systems/si/include/units/isq/si/current_density.h @@ -42,6 +42,8 @@ struct dim_current_density : isq::dim_current_density U, Representation Rep = double> using current_density = quantity; +#if UNITS_UDLS + inline namespace literals { // A / m² @@ -50,4 +52,6 @@ constexpr auto operator"" _q_A_per_m2(long double l) { return current_density U, Representation Rep = double> using density = quantity; +#if UNITS_UDLS + inline namespace literals { // kg / m³ @@ -50,4 +52,6 @@ constexpr auto operator"" _q_kg_per_m3(long double l) { return density U, Representation Rep = double> using dynamic_viscosity = quantity; +#if UNITS_UDLS + inline namespace literals { // Pa·s @@ -48,5 +50,7 @@ constexpr auto operator"" _q_Pa_s(long double l) { return dynamic_viscosity U, Representation Rep = double> using electric_charge = quantity; +#if UNITS_UDLS + inline namespace literals { // C @@ -50,6 +52,8 @@ constexpr auto operator"" _q_C(long double l) { return electric_charge{}; 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 ae200405..729f0798 100644 --- a/src/systems/si/include/units/isq/si/electric_current.h +++ b/src/systems/si/include/units/isq/si/electric_current.h @@ -61,6 +61,8 @@ struct dim_electric_current : isq::dim_electric_current {}; template U, Representation Rep = double> using electric_current = quantity; +#if UNITS_UDLS + inline namespace literals { // A @@ -149,6 +151,8 @@ constexpr auto operator"" _q_YA(long double l) { return electric_current{}; 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 dcc3e60b..66d7be75 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 @@ -39,6 +39,8 @@ struct dim_electric_field_strength : isq::dim_electric_field_strength U, Representation Rep = double> using electric_field_strength = quantity; +#if UNITS_UDLS + inline namespace literals { // V/m @@ -47,4 +49,6 @@ constexpr auto operator"" _q_V_per_m(long double l) { return electric_field_stre } // namespace literals +#endif // UNITS_UDLS + } // namespace units::isq::si diff --git a/src/systems/si/include/units/isq/si/energy.h b/src/systems/si/include/units/isq/si/energy.h index b69b71d9..27d3ee80 100644 --- a/src/systems/si/include/units/isq/si/energy.h +++ b/src/systems/si/include/units/isq/si/energy.h @@ -61,6 +61,8 @@ struct dim_energy : isq::dim_energy {} template U, Representation Rep = double> using energy = quantity; +#if UNITS_UDLS + inline namespace literals { // J @@ -141,6 +143,8 @@ constexpr auto operator"" _q_GeV(long double l) { return energy{}; 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 46fb4ee1..837046f3 100644 --- a/src/systems/si/include/units/isq/si/energy_density.h +++ b/src/systems/si/include/units/isq/si/energy_density.h @@ -40,6 +40,8 @@ struct dim_energy_density : isq::dim_energy_density U, Representation Rep = double> using energy_density = quantity; +#if UNITS_UDLS + inline namespace literals { // N/m @@ -48,4 +50,6 @@ constexpr auto operator"" _q_J_per_m3(long double l) { return energy_density template U, Representation Rep = double> using force = quantity; +#if UNITS_UDLS + inline namespace literals { // N @@ -151,6 +153,8 @@ constexpr auto operator"" _q_YN(long double l) { return force{}; diff --git a/src/systems/si/include/units/isq/si/frequency.h b/src/systems/si/include/units/isq/si/frequency.h index 81d7e357..90ddbd9e 100644 --- a/src/systems/si/include/units/isq/si/frequency.h +++ b/src/systems/si/include/units/isq/si/frequency.h @@ -57,6 +57,8 @@ struct dim_frequency : isq::dim_frequency {}; template U, Representation Rep = double> using frequency = quantity; +#if UNITS_UDLS + inline namespace literals { // Hz @@ -129,6 +131,8 @@ constexpr auto operator"" _q_YHz(long double l) { return frequency{}; 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 5d33c869..f2757aad 100644 --- a/src/systems/si/include/units/isq/si/heat_capacity.h +++ b/src/systems/si/include/units/isq/si/heat_capacity.h @@ -53,6 +53,8 @@ using specific_heat_capacity = quantity; template U, Representation Rep = double> using molar_heat_capacity = quantity; +#if UNITS_UDLS + inline namespace literals { // J/K @@ -69,5 +71,7 @@ constexpr auto operator"" _q_J_per_mol_K(long double l) { return molar_heat_capa } // namespace literals +#endif // UNITS_UDLS + } // namespace units::isq::si diff --git a/src/systems/si/include/units/isq/si/inductance.h b/src/systems/si/include/units/isq/si/inductance.h index 604771b0..311c13c4 100644 --- a/src/systems/si/include/units/isq/si/inductance.h +++ b/src/systems/si/include/units/isq/si/inductance.h @@ -59,6 +59,8 @@ struct dim_inductance : isq::dim_inductance U, Representation Rep = double> using inductance = quantity; +#if UNITS_UDLS + inline namespace literals { // H @@ -131,6 +133,8 @@ constexpr auto operator"" _q_YH(long double l) { return inductance{}; diff --git a/src/systems/si/include/units/isq/si/length.h b/src/systems/si/include/units/isq/si/length.h index 8dd5c232..f41e4ba4 100644 --- a/src/systems/si/include/units/isq/si/length.h +++ b/src/systems/si/include/units/isq/si/length.h @@ -63,6 +63,8 @@ struct dim_length : isq::dim_length {}; template U, Representation Rep = double> using length = quantity; +#if UNITS_UDLS + inline namespace literals { // m @@ -155,6 +157,8 @@ constexpr auto operator"" _q_au(long double l) { return length{}; diff --git a/src/systems/si/include/units/isq/si/luminance.h b/src/systems/si/include/units/isq/si/luminance.h index 7819b55b..8dd5c713 100644 --- a/src/systems/si/include/units/isq/si/luminance.h +++ b/src/systems/si/include/units/isq/si/luminance.h @@ -40,6 +40,8 @@ struct dim_luminance : isq::dim_luminance U, Representation Rep = double> using luminance = quantity; +#if UNITS_UDLS + inline namespace literals { // cd/m² @@ -48,5 +50,7 @@ constexpr auto operator"" _q_cd_per_m2(long double l) { return luminance {}; template U, Representation Rep = double> using luminous_intensity = quantity; +#if UNITS_UDLS + inline namespace literals { // cd @@ -149,6 +151,8 @@ constexpr auto operator"" _q_Ycd(long double l) { return luminous_intensity{}; 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 ca3d05a5..0f245fe3 100644 --- a/src/systems/si/include/units/isq/si/magnetic_flux.h +++ b/src/systems/si/include/units/isq/si/magnetic_flux.h @@ -59,6 +59,8 @@ struct dim_magnetic_flux : isq::dim_magnetic_flux U, Representation Rep = double> using magnetic_flux = quantity; +#if UNITS_UDLS + inline namespace literals { // Wb @@ -131,6 +133,8 @@ constexpr auto operator"" _q_YWb(long double l) { return magnetic_flux{}; 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 dff0c40f..45da0a21 100644 --- a/src/systems/si/include/units/isq/si/magnetic_induction.h +++ b/src/systems/si/include/units/isq/si/magnetic_induction.h @@ -63,6 +63,8 @@ struct dim_magnetic_induction : isq::dim_magnetic_induction U, Representation Rep = double> using magnetic_induction = quantity; +#if UNITS_UDLS + inline namespace literals { // T @@ -139,6 +141,8 @@ constexpr auto operator"" _q_G(long double l) { return magnetic_induction{}; diff --git a/src/systems/si/include/units/isq/si/mass.h b/src/systems/si/include/units/isq/si/mass.h index bcfc91a4..dd20fb8e 100644 --- a/src/systems/si/include/units/isq/si/mass.h +++ b/src/systems/si/include/units/isq/si/mass.h @@ -85,6 +85,8 @@ struct dim_mass : isq::dim_mass {}; template U, Representation Rep = double> using mass = quantity; +#if UNITS_UDLS + inline namespace literals { // g @@ -261,6 +263,8 @@ constexpr auto operator"" _q_Da(long double l) { return mass{}; 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 1982ebb8..2470e101 100644 --- a/src/systems/si/include/units/isq/si/molar_energy.h +++ b/src/systems/si/include/units/isq/si/molar_energy.h @@ -42,6 +42,8 @@ struct dim_molar_energy : isq::dim_molar_energy U, Representation Rep = double> using molar_energy = quantity; +#if UNITS_UDLS + inline namespace literals { // J/mol @@ -50,4 +52,6 @@ constexpr auto operator"" _q_J_per_mol(long double l) { return molar_energy U, Representation Rep = double> using momentum = quantity; +#if UNITS_UDLS + inline namespace literals { // kg*m/s @@ -48,4 +50,6 @@ constexpr auto operator"" _q_kg_m_per_s(long double l) { return momentum U, Representation Rep = double> using permeability = quantity; +#if UNITS_UDLS + inline namespace literals { // H/m @@ -49,5 +51,7 @@ constexpr auto operator"" _q_H_per_m(long double l) { return permeability U, Representation Rep = double> using permittivity = quantity; +#if UNITS_UDLS + inline namespace literals { // F/m @@ -49,5 +51,7 @@ constexpr auto operator"" _q_F_per_m(long double l) { return permittivity {}; template U, Representation Rep = double> using power = quantity; +#if UNITS_UDLS + inline namespace literals { // W @@ -130,6 +132,8 @@ constexpr auto operator"" _q_YW(long double l) { return power{}; diff --git a/src/systems/si/include/units/isq/si/pressure.h b/src/systems/si/include/units/isq/si/pressure.h index 94005a93..cb9d5af3 100644 --- a/src/systems/si/include/units/isq/si/pressure.h +++ b/src/systems/si/include/units/isq/si/pressure.h @@ -63,6 +63,8 @@ struct dim_pressure : isq::dim_pressure U, Representation Rep = double> using pressure = quantity; +#if UNITS_UDLS + inline namespace literals { // Pa @@ -151,6 +153,8 @@ constexpr auto operator"" _q_YPa(long double l) { return pressure{}; diff --git a/src/systems/si/include/units/isq/si/radioactivity.h b/src/systems/si/include/units/isq/si/radioactivity.h index 4d216e1a..1e9370a9 100644 --- a/src/systems/si/include/units/isq/si/radioactivity.h +++ b/src/systems/si/include/units/isq/si/radioactivity.h @@ -61,6 +61,8 @@ struct dim_radioactivity : isq::dim_radioactivity U, Representation Rep = double> using radioactivity = quantity; +#if UNITS_UDLS + inline namespace literals { // Bq @@ -149,6 +151,8 @@ constexpr auto operator"" _q_YBq(long double l) { return radioactivity{}; diff --git a/src/systems/si/include/units/isq/si/resistance.h b/src/systems/si/include/units/isq/si/resistance.h index 85b99dc6..61a65c73 100644 --- a/src/systems/si/include/units/isq/si/resistance.h +++ b/src/systems/si/include/units/isq/si/resistance.h @@ -59,6 +59,8 @@ struct dim_resistance : isq::dim_resistance U, Representation Rep = double> using resistance = quantity; +#if UNITS_UDLS + inline namespace literals { // R @@ -131,6 +133,8 @@ constexpr auto operator"" _q_YR(long double l) { return resistance{}; diff --git a/src/systems/si/include/units/isq/si/speed.h b/src/systems/si/include/units/isq/si/speed.h index 5224a99f..a1afb937 100644 --- a/src/systems/si/include/units/isq/si/speed.h +++ b/src/systems/si/include/units/isq/si/speed.h @@ -42,6 +42,8 @@ struct kilometre_per_hour : deduced_unit U, Representation Rep = double> using speed = quantity; +#if UNITS_UDLS + inline namespace literals { // m/s @@ -54,4 +56,6 @@ constexpr auto operator"" _q_km_per_h(long double l) { return speed U, Representation Rep = double> using surface_tension = quantity; +#if UNITS_UDLS + inline namespace literals { // N/m @@ -48,4 +50,6 @@ constexpr auto operator"" _q_N_per_m(long double l) { return surface_tension U, Representation Rep = double> using thermal_conductivity = quantity; +#if UNITS_UDLS + inline namespace literals { // W/(m K) @@ -49,4 +51,6 @@ constexpr auto operator"" _q_W_per_m_K(long double l) { return thermal_conductiv } // namespace literals +#endif // UNITS_UDLS + } // namespace units::isq::si 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 40a0b81b..9d2a08bb 100644 --- a/src/systems/si/include/units/isq/si/thermodynamic_temperature.h +++ b/src/systems/si/include/units/isq/si/thermodynamic_temperature.h @@ -40,6 +40,8 @@ struct dim_thermodynamic_temperature : isq::dim_thermodynamic_temperature U, Representation Rep = double> using thermodynamic_temperature = quantity; +#if UNITS_UDLS + inline namespace literals { // K @@ -48,6 +50,8 @@ constexpr auto operator"" _q_K(long double l) { return thermodynamic_temperature } // namespace literals +#endif // UNITS_UDLS + namespace references { inline constexpr auto K = reference{}; diff --git a/src/systems/si/include/units/isq/si/time.h b/src/systems/si/include/units/isq/si/time.h index ef59e301..cf0624bd 100644 --- a/src/systems/si/include/units/isq/si/time.h +++ b/src/systems/si/include/units/isq/si/time.h @@ -52,6 +52,8 @@ struct dim_time : isq::dim_time {}; template U, Representation Rep = double> using time = quantity; +#if UNITS_UDLS + inline namespace literals { // ys @@ -104,6 +106,8 @@ constexpr auto operator"" _q_d(long double l) { return time(l) } // namespace literals +#endif // UNITS_UDLS + namespace references { inline constexpr auto ys = reference{}; diff --git a/src/systems/si/include/units/isq/si/torque.h b/src/systems/si/include/units/isq/si/torque.h index 54923e8a..2b59997f 100644 --- a/src/systems/si/include/units/isq/si/torque.h +++ b/src/systems/si/include/units/isq/si/torque.h @@ -42,6 +42,8 @@ struct dim_torque : isq::dim_torque U, Representation Rep = double> using torque = quantity; +#if UNITS_UDLS + inline namespace literals { // Nm @@ -50,4 +52,6 @@ constexpr auto operator"" _q_Nm_per_rad(long double l) { return torque U, Representation Rep = double> using voltage = quantity; +#if UNITS_UDLS + inline namespace literals { // V @@ -151,6 +153,8 @@ constexpr auto operator"" _q_YV(long double l) { return voltage{}; diff --git a/src/systems/si/include/units/isq/si/volume.h b/src/systems/si/include/units/isq/si/volume.h index 1f126279..a33bd8eb 100644 --- a/src/systems/si/include/units/isq/si/volume.h +++ b/src/systems/si/include/units/isq/si/volume.h @@ -83,6 +83,8 @@ struct yottalitre : prefixed_unit {}; template U, Representation Rep = double> using volume = quantity; +#if UNITS_UDLS + inline namespace literals { // m3 @@ -255,6 +257,8 @@ constexpr auto operator"" _q_Yl(long double l) { return volume{};