diff --git a/README.md b/README.md index e7f43f27..d66527d5 100644 --- a/README.md +++ b/README.md @@ -27,22 +27,22 @@ Here is a small example of possible operations: ```cpp // simple numeric operations -static_assert(10q_km / 2 == 5q_km); +static_assert(10_q_km / 2 == 5_q_km); // unit conversions -static_assert(1q_h == 3600q_s); -static_assert(1q_km + 1q_m == 1001q_m); +static_assert(1_q_h == 3600_q_s); +static_assert(1_q_km + 1_q_m == 1001_q_m); // dimension conversions -static_assert(1q_km / 1q_s == 1000q_m_per_s); -static_assert(2q_km_per_h * 2q_h == 4q_km); -static_assert(2q_km / 2q_km_per_h == 1q_h); +static_assert(1_q_km / 1_q_s == 1000_q_m_per_s); +static_assert(2_q_km_per_h * 2_q_h == 4_q_km); +static_assert(2_q_km / 2_q_km_per_h == 1_q_h); -static_assert(2q_m * 3q_m == 6q_m2); +static_assert(2_q_m * 3_q_m == 6_q_m2); -static_assert(10q_km / 5q_km == 2); +static_assert(10_q_km / 5_q_km == 2); -static_assert(1000 / 1q_s == 1q_kHz); +static_assert(1000 / 1_q_s == 1_q_kHz); ``` _Try it on the [Compiler Explorer](https://godbolt.org/z/XPmjPz)._ @@ -68,7 +68,7 @@ constexpr Speed auto avg_speed(Length auto d, Time auto t) int main() { using namespace units::physical::si::literals; - Speed auto v1 = avg_speed(220q_km, 2q_h); + Speed auto v1 = avg_speed(220_q_km, 2_q_h); Speed auto v2 = avg_speed(si::length(140), si::time(2)); Speed auto v3 = quantity_cast(v2); Speed auto v4 = quantity_cast(v3); diff --git a/conanfile.py b/conanfile.py index 76b05e1c..c8c578b8 100644 --- a/conanfile.py +++ b/conanfile.py @@ -115,11 +115,9 @@ class UnitsConan(ConanFile): version = Version(self.settings.compiler.version) if compiler == "gcc": self.cpp_info.cxxflags = [ - "-Wno-literal-suffix", - "-Wno-non-template-friend", + "-Wno-non-template-friend" ] elif compiler == "Visual Studio": self.cpp_info.cxxflags = [ - "/utf-8", - "/wd4455" + "/utf-8" ] diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index f6f02a52..ccc83c47 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -19,6 +19,7 @@ - Added support for `exp()` mathematical support - Dimensionless quantities redesigned to be of `quantity` type - `Scalar` concept renamed to `ScalableNumber` + - `q_*` UDL renamed to `_q_*` - **0.5.0 May 17, 2020** - Major refactoring and rewrite of the library diff --git a/docs/faq.rst b/docs/faq.rst index 848e09fd..d17f8da8 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -36,7 +36,7 @@ Why a dimensionless quantity is not just an fundamental arithmetic type? In the initial design of this library the resulting type of the division of two quantities was their common representation type:: - static_assert(std::is_same_v); + static_assert(std::is_same_v); The reasoning behind it was to not provide a false impression of a strong `quantity` type for something that looks and feels like a regular number. Also all of the mathematic @@ -67,8 +67,13 @@ Well, this is how [ISO-80000]_ defines it (British English spelling by default). User Defined Literals (UDLs) ---------------------------- -Why all UDLs are prefixed with ``q_`` instead of just using unit symbol? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Why all UDLs are prefixed with ``_q_`` instead of just using unit symbol? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +..note .. + + Every ``_q_*`` UDL will be replaced by the ``q_*`` literal when/if **mp-units** + will become a part of the C++ Standard Library. Usage of only unit symbols in UDLs would be a preferred approach (less to type, easier to understand and maintain). However, while increasing the coverage for @@ -77,26 +82,10 @@ built-in types or numeric extensions. A few of those are: ``F`` (farad), ``J`` (joule), ``W`` (watt), ``K`` (kelvin), ``d`` (day), ``l`` or ``L`` (litre), ``erg``, ``ergps``. For a while for those we used ``_`` prefix to make the library work at all, but at some point we had to unify the -naming and we came up with ``q_`` prefix which results in a creation of +naming and we came up with ``_q_`` prefix which results in a creation of quantity of a provided unit. -Why do we use UDLs reserved for the C++ standard (no ``_`` prefix)? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This library is meant to become a part of the C++ Standard Library at some point -in the future. We decided to work with the target interface to get implementation -and user experience. Only thanks to this we were able to detect multiple collisions -with literals already existing in the language in our initial approach -(`Why all UDLs are prefixed with q_ instead of just using unit symbol? -<#why-unicode-quantity-symbols-are-used-by-default-instead-of-ascii-only-characters>`_). -This approach has some side effects though. We had to disable some compiler warnings -to make it work: - -- ``/wd4455`` on MSVC, -- ``-Wno-literal-suffix`` on other compilers. - - Text formatting --------------- diff --git a/docs/framework/conversions_and_casting.rst b/docs/framework/conversions_and_casting.rst index 5e0eaeca..5ea37905 100644 --- a/docs/framework/conversions_and_casting.rst +++ b/docs/framework/conversions_and_casting.rst @@ -21,9 +21,9 @@ No Conversions No conversions (either implicit or explicit) are available across quantities of different dimensions:: - si::length d1 = 1q_s; // Compile-time error - si::length d2(1q_s); // Compile-time error - auto d3 = quantity_cast(1q_s); // Compile-time error + si::length d1 = 1_q_s; // Compile-time error + si::length d2(1_q_s); // Compile-time error + auto d3 = quantity_cast(1_q_s); // Compile-time error Implicit @@ -33,23 +33,23 @@ Implicit conversions are allowed only across quantities of the same dimension: - for integral types with ratios that guarantee no precision loss:: - si::length d1 = 1q_km + 1q_m; // OK - si::length d2 = 1q_km + 1q_m; // OK - si::length d3 = 1q_km + 1q_m; // Compile-time error - si::length d4(1q_km + 1q_m); // Compile-time error - si::length d5 = 1q_m + 1q_ft; // Compile-time error - si::length d6(1q_m + 1q_ft); // Compile-time error + si::length d1 = 1_q_km + 1_q_m; // OK + si::length d2 = 1_q_km + 1_q_m; // OK + si::length d3 = 1_q_km + 1_q_m; // Compile-time error + si::length d4(1_q_km + 1_q_m); // Compile-time error + si::length d5 = 1_q_m + 1_q_ft; // Compile-time error + si::length d6(1_q_m + 1_q_ft); // Compile-time error - from an integral to a floating-point representation even in case of a truncating ratio:: - si::length d7 = 1q_km + 1q_m; // OK - si::length d8 = 1q_m + 1q_ft; // OK + si::length d7 = 1_q_km + 1_q_m; // OK + si::length d8 = 1_q_m + 1_q_ft; // OK - when both sides use a floating-point representation:: - si::length d9 = 1.23q_m; // Compile-time error - si::length d10 = 1.23q_m; // OK + si::length d9 = 1.23_q_m; // Compile-time error + si::length d10 = 1.23_q_m; // OK Explicit @@ -92,7 +92,7 @@ once and leave the rest intact: `quantity_point_cast` takes anything that works for `quantity_point` or a specific target `quantity_point`:: - std::cout << "Point: " << quantity_point_cast(d) << '\n'; + std::cout << "Point: " << quantity_point_cast(d) << '\n'; .. seealso:: @@ -108,8 +108,8 @@ As noted in the :ref:`Dimensionless Quantities` chapter, :term:`quantity of dime is somehow special but still obey most of the rules defined for quantities. However, as they represent numbers it would be highly uncomfortable to every time type:: - const auto d1 = 10q_km; - const auto d2 = 3q_km; + const auto d1 = 10_q_km; + const auto d2 = 3_q_km; if(d1 / d2 > dimensionless) { // ... } @@ -123,8 +123,8 @@ This is why it was decided to allow the ``dimensionless`` quantity of any representation type to be implicitly constructible from this representation type. With that the above examples can be rewritten as follows:: - const auto d1 = 10q_km; - const auto d2 = 3q_km; + const auto d1 = 10_q_km; + const auto d2 = 3_q_km; if(d1 / d2 > 2) { // ... } @@ -142,8 +142,8 @@ could be ambiguous. For example:: return d1 / d2 + 1; } -As long as we can reason about what such code means for ``foo(10q_km, 2q_km)`` it is not that obvious -at all in the case of ``foo(10q_cm, 2q_ft)``. To make such code to compile for every case we have to +As long as we can reason about what such code means for ``foo(10_q_km, 2_q_km)`` it is not that obvious +at all in the case of ``foo(10_q_cm, 2_q_ft)``. To make such code to compile for every case we have to either change the type of the resulting unit to the one having ``ratio(1)`` (:term:`coherent derived unit`):: Dimensionless auto foo(Length auto d1, Length auto d2) @@ -162,15 +162,15 @@ There is one more important point to note here. As the the dimensionless quantit a number, it is never implicitly converted back to the representation type. This means that the following code will not compile:: - auto v = std::exp(10q_m / 5q_m); + auto v = std::exp(10_q_m / 5_q_m); To make it compile fine we have to either explicitly get the value stored in the quantity:: - auto v = std::exp(quantity_cast(10q_m / 5q_m).count()); + auto v = std::exp(quantity_cast(10_q_m / 5_q_m).count()); or use a mathematical wrapper function from `units` namespace:: - auto v = units::exp(10q_m / 5q_m); + auto v = units::exp(10_q_m / 5_q_m); .. important:: diff --git a/docs/framework/dimensions.rst b/docs/framework/dimensions.rst index 6fae1125..34769eeb 100644 --- a/docs/framework/dimensions.rst +++ b/docs/framework/dimensions.rst @@ -17,8 +17,8 @@ each other and the result will always be a quantity of the same dimension: .. code-block:: :emphasize-lines: 3-4 - Length auto dist1 = 2q_m; - Length auto dist2 = 1q_m; + Length auto dist1 = 2_q_m; + Length auto dist2 = 1_q_m; Length auto res1 = dist1 + dist2; Length auto res2 = dist1 - dist2; @@ -29,7 +29,7 @@ not change: .. code-block:: :emphasize-lines: 2-4 - Length auto dist = 2q_m; + Length auto dist = 2_q_m; Length auto res1 = dist * 2; // 4 m Length auto res2 = 3 * res1; // 12 m Length auto res3 = res2 / 2; // 6 m @@ -41,9 +41,9 @@ probably will always end up in a quantity of a yet another dimension: .. code-block:: :emphasize-lines: 4-6 - Length auto dist1 = 2q_m; - Length auto dist2 = 3q_m; - Time auto dur1 = 2q_s; + Length auto dist1 = 2_q_m; + Length auto dist2 = 3_q_m; + Time auto dur1 = 2_q_s; Area auto res1 = dist1 * dist2; // 6 m² Speed auto res2 = dist1 / dur1; // 1 m/s Frequency auto res3 = 10 / dur1; // 5 Hz @@ -55,9 +55,9 @@ dimension, than we will end up with just a scalable number type: .. code-block:: :emphasize-lines: 4-5 - Time auto dur1 = 10q_s; - Time auto dur2 = 2q_s; - Frequency auto fr1 = 5q_Hz; + Time auto dur1 = 10_q_s; + Time auto dur2 = 2_q_s; + Frequency auto fr1 = 5_q_Hz; ScalableNumber auto v1 = dur1 / dur2; // 5 ScalableNumber auto v2 = dur1 * fr1; // 50 @@ -69,8 +69,8 @@ The result will always be a quantity point of the same dimension: .. code-block:: :emphasize-lines: 3-5 - Length auto dist1 = 2q_m; - Length auto dist2 = 1q_m; + Length auto dist1 = 2_q_m; + Length auto dist2 = 1_q_m; QuantityPoint auto res1 = quantity_point{dist1} + dist2; QuantityPoint auto res2 = dist1 + quantity_point{dist2}; QuantityPoint auto res3 = quantity_point{dist1} - dist2; @@ -82,8 +82,8 @@ The result will always be a quantity point of the same dimension: .. code-block:: :emphasize-lines: 3 - Length auto dist1 = 2q_m; - Length auto dist2 = 1q_m; + Length auto dist1 = 2_q_m; + Length auto dist2 = 1_q_m; auto res1 = dist1 - quantity_point{dist2}; // ERROR We can also subtract two quantity points. @@ -92,8 +92,8 @@ The result is a relative quantity of the same dimension: .. code-block:: :emphasize-lines: 3 - Length auto dist1 = 2q_m; - Length auto dist2 = 1q_m; + Length auto dist1 = 2_q_m; + Length auto dist2 = 1_q_m; Length auto res1 = quantity_point{dist1} - quantity_point{dist2}; That's it! You can't multiply nor divide quantity points with anything else. diff --git a/docs/framework/quantities.rst b/docs/framework/quantities.rst index ebb1b167..93c1907f 100644 --- a/docs/framework/quantities.rst +++ b/docs/framework/quantities.rst @@ -48,15 +48,15 @@ values the library provides :abbr:`UDL (User Defined Literal)` s for each be as simple as:: using namespace units::physical::si::literals; - constexpr auto d1 = 123q_km; // si::length - constexpr auto d2 = 123.q_km; // si::length + constexpr auto d1 = 123_q_km; // si::length + constexpr auto d2 = 123._q_km; // si::length -``123q_km`` should be read as a quantity of length in kilometers. Initially the -library did not use the ``q_`` prefix for UDLs but it turned out that there are +``123_q_km`` should be read as a quantity of length in kilometers. Initially the +library did not use the ``_q_`` prefix for UDLs but it turned out that there are a few unit symbols that collide with literals already existing in C and C++ language (i.e. ``F`` (farad), ``J`` (joule), ``W`` (watt), ``K`` (kelvin), ``d`` (day), ``l`` or ``L`` (litre), ``erg``, ``ergps``). This is why the -``q_`` prefix was consistently applied to all the UDLs. +``_q_`` prefix was consistently applied to all the UDLs. Dimension-specific Concepts @@ -67,7 +67,7 @@ requires quantity of a concrete dimension than dimension-specific concepts can be used:: using namespace units::physical::si::literals; - constexpr Length auto d = 123q_km; // si::length + constexpr Length auto d = 123_q_km; // si::length .. note:: @@ -83,8 +83,8 @@ quantities. The usage of such a function can look as follows:: using namespace units::physical::si::literals; using namespace units::physical::international::literals; - constexpr Speed auto v1 = avg_speed(220q_km, 2q_h); - constexpr Speed auto v2 = avg_speed(140q_mi, 2q_h); + constexpr Speed auto v1 = avg_speed(220_q_km, 2_q_h); + constexpr Speed auto v2 = avg_speed(140_q_mi, 2_q_h); In this and all other physical units libraries such a function can be implemented as:: @@ -142,7 +142,7 @@ but often we would like to know a specific type too. We have two options here: - query the actual dimension, unit, and representation types:: - constexpr Speed auto v = avg_speed(220q_km, 2q_h); + constexpr Speed auto v = avg_speed(220_q_km, 2_q_h); using quantity_type = decltype(v); using dimension_type = quantity_type::dimension; using unit_type = quantity_type::unit; @@ -150,7 +150,7 @@ but often we would like to know a specific type too. We have two options here: - convert or cast to a desired quantity type:: - constexpr Speed auto v1 = avg_speed(220.q_km, 2q_h); + constexpr Speed auto v1 = avg_speed(220._q_km, 2_q_h); constexpr si::speed v2 = v1; constexpr Speed auto v3 = quantity_cast(v1); @@ -166,8 +166,8 @@ Dimensionless Quantities Whenever we divide two quantities of the same dimension we end up with a :term:`dimensionless quantity` otherwise known as :term:`quantity of dimension one`:: - static_assert(10q_km / 5q_km == 2); - static_assert(std::is_same_v>); + static_assert(10_q_km / 5_q_km == 2); + static_assert(std::is_same_v>); According to the official ISO definition `dim_one` is a dimension "for which all the exponents of the factors corresponding to the base quantities in its quantity dimension @@ -196,7 +196,7 @@ There are two special units provided for usage with such a quantity: For example the following code:: - std::cout << quantity_cast(50.q_m / 100.q_m) << '\n'; + std::cout << quantity_cast(50._q_m / 100._q_m) << '\n'; will print ``50 %`` to the console output. diff --git a/docs/framework/quantity_points.rst b/docs/framework/quantity_points.rst index 68219158..65f1878c 100644 --- a/docs/framework/quantity_points.rst +++ b/docs/framework/quantity_points.rst @@ -14,7 +14,7 @@ Quantity Point Construction To create the quantity point object from a `quantity` we just have to pass the value to the `quantity_point` class template explicit constructor:: - quantity_point d(123q_km); + quantity_point d(123_q_km); .. note:: @@ -25,7 +25,7 @@ the value to the `quantity_point` class template explicit constructor:: `copy initialization `_ **does not compile**:: - quantity_point d = 123q_km; // ERROR + quantity_point d = 123_q_km; // ERROR Differences to quantity diff --git a/docs/framework/text_output.rst b/docs/framework/text_output.rst index 61d97798..2b7812d6 100644 --- a/docs/framework/text_output.rst +++ b/docs/framework/text_output.rst @@ -18,8 +18,8 @@ stream:: using namespace units::physical::si::literals; using namespace units::physical::international::literals; - constexpr Speed auto v1 = avg_speed(220.q_km, 2q_h); - constexpr Speed auto v2 = avg_speed(140.q_mi, 2q_h); + constexpr Speed auto v1 = avg_speed(220._q_km, 2_q_h); + constexpr Speed auto v2 = avg_speed(140._q_mi, 2_q_h); std::cout << v1 << '\n'; // 110 km/h std::cout << v2 << '\n'; // 70 mi/h @@ -41,9 +41,9 @@ Stream Output Formatting Only a basic formatting can be applied for output streams. It includes control over width, fill, and alignment:: - os << "|" << std::setw(10) << 123q_m << "|"; // | 123 m| - os << "|" << std::setw(10) << std::left << 123q_m << "|"; // |123 m | - os << "|" << std::setw(10) << std::setfill('*') << 123q_m << "|"; // |*****123 m| + os << "|" << std::setw(10) << 123_q_m << "|"; // | 123 m| + os << "|" << std::setw(10) << std::left << 123_q_m << "|"; // |123 m | + os << "|" << std::setw(10) << std::setfill('*') << 123_q_m << "|"; // |*****123 m| fmt::format @@ -91,9 +91,9 @@ In case it is left empty the default formatting of ``{:%Q %q}`` is applied. The default formatting is also applied to the output streams. This is why the following code lines produce the same output:: - std::cout << "Distance: " << 123q_km << "\n"; - fmt::print("Distance: {}\n", 123q_km); - fmt::print("Distance: {:%Q %q}\n", 123q_km); + std::cout << "Distance: " << 123_q_km << "\n"; + fmt::print("Distance: {}\n", 123_q_km); + fmt::print("Distance: {:%Q %q}\n", 123_q_km); Quantity Value, Symbol, or Both? @@ -102,9 +102,9 @@ Quantity Value, Symbol, or Both? The user can easily decide to either print a whole quantity (value and symbol) or only its parts. Also a different quantity formatting might be applied:: - fmt::print("{:%Q}", 123q_km); // 123 - fmt::print("{:%q}", 123q_km); // km - fmt::print("{:%Q%q}", 123q_km); // 123km + fmt::print("{:%Q}", 123_q_km); // 123 + fmt::print("{:%q}", 123_q_km); // km + fmt::print("{:%Q%q}", 123_q_km); // 123km Controlling Width, Fill, and Alignment @@ -114,14 +114,14 @@ To control width, fill, and alignment the C++ standard grammar tokens ``fill-and and ``width`` are being used and they treat a quantity value and symbol as a contiguous text:: - fmt::print("|{:0}|", 123q_m); // |123 m| - fmt::print("|{:10}|", 123q_m); // | 123 m| - fmt::print("|{:<10}|", 123q_m); // |123 m | - fmt::print("|{:>10}|", 123q_m); // | 123 m| - fmt::print("|{:^10}|", 123q_m); // | 123 m | - fmt::print("|{:*<10}|", 123q_m); // |123 m*****| - fmt::print("|{:*>10}|", 123q_m); // |*****123 m| - fmt::print("|{:*^10}|", 123q_m); // |**123 m***| + fmt::print("|{:0}|", 123_q_m); // |123 m| + fmt::print("|{:10}|", 123_q_m); // | 123 m| + fmt::print("|{:<10}|", 123_q_m); // |123 m | + fmt::print("|{:>10}|", 123_q_m); // | 123 m| + fmt::print("|{:^10}|", 123_q_m); // | 123 m | + fmt::print("|{:*<10}|", 123_q_m); // |123 m*****| + fmt::print("|{:*>10}|", 123_q_m); // |*****123 m| + fmt::print("|{:*^10}|", 123_q_m); // |**123 m***| ASCII-only Quantity Symbols @@ -133,12 +133,12 @@ this by default. From the engineering point of view sometimes Unicode text migh not be a solution as terminals of many (especially embedded) devices are ASCII-only. In such a case the unit symbol can be forced to be printed using ASCII-only characters:: - fmt::print("{}", 10q_R); // 10 Ω - fmt::print("{:%Q %Aq}", 10q_R); // 10 ohm - fmt::print("{}", 125q_us); // 125 µs - fmt::print("{:%Q %Aq}", 125q_us); // 125 us - fmt::print("{}", 9.8q_m_per_s2); // 9.8 m/s² - fmt::print("{:%Q %Aq}", 9.8q_m_per_s2); // 9.8 m/s^2 + fmt::print("{}", 10_q_R); // 10 Ω + fmt::print("{:%Q %Aq}", 10_q_R); // 10 ohm + fmt::print("{}", 125_q_us); // 125 µs + fmt::print("{:%Q %Aq}", 125_q_us); // 125 us + fmt::print("{}", 9.8_q_m_per_s2); // 9.8 m/s² + fmt::print("{:%Q %Aq}", 9.8_q_m_per_s2); // 9.8 m/s^2 Controlling on How the Quantity Value Is Being Printed @@ -146,8 +146,8 @@ Controlling on How the Quantity Value Is Being Printed ``sign`` token allows us to specify on how the value's sign is being printed:: - fmt::print("{0:%Q %q},{0:%+Q %q},{0:%-Q %q},{0:% Q %q}", 1q_m); // 1 m,+1 m,1 m, 1 m - fmt::print("{0:%Q %q},{0:%+Q %q},{0:%-Q %q},{0:% Q %q}", -1q_m); // -1 m,-1 m,-1 m,-1 m + fmt::print("{0:%Q %q},{0:%+Q %q},{0:%-Q %q},{0:% Q %q}", 1_q_m); // 1 m,+1 m,1 m, 1 m + fmt::print("{0:%Q %q},{0:%+Q %q},{0:%-Q %q},{0:% Q %q}", -1_q_m); // -1 m,-1 m,-1 m,-1 m where: @@ -159,47 +159,47 @@ where: ``precision`` token is allowed only for floating-point representation types:: - fmt::print("{:%.0Q %q}", 1.2345q_m); // 1 m - fmt::print("{:%.1Q %q}", 1.2345q_m); // 1.2 m - fmt::print("{:%.2Q %q}", 1.2345q_m); // 1.23 m + fmt::print("{:%.0Q %q}", 1.2345_q_m); // 1 m + fmt::print("{:%.1Q %q}", 1.2345_q_m); // 1.2 m + fmt::print("{:%.2Q %q}", 1.2345_q_m); // 1.23 m :token:`units-rep-type` specifies how a value of the representation type is being printed. For integral types:: - fmt::print("{:%bQ %q}", 42q_m); // 101010 m - fmt::print("{:%BQ %q}", 42q_m); // 101010 m - fmt::print("{:%dQ %q}", 42q_m); // 42 m - fmt::print("{:%oQ %q}", 42q_m); // 52 m - fmt::print("{:%xQ %q}", 42q_m); // 2a m - fmt::print("{:%XQ %q}", 42q_m); // 2A m + fmt::print("{:%bQ %q}", 42_q_m); // 101010 m + fmt::print("{:%BQ %q}", 42_q_m); // 101010 m + fmt::print("{:%dQ %q}", 42_q_m); // 42 m + fmt::print("{:%oQ %q}", 42_q_m); // 52 m + fmt::print("{:%xQ %q}", 42_q_m); // 2a m + fmt::print("{:%XQ %q}", 42_q_m); // 2A m The above can be printed in an alternate version thanks to the ``#`` token:: - fmt::print("{:%#bQ %q}", 42q_m); // 0b101010 m - fmt::print("{:%#BQ %q}", 42q_m); // 0B101010 m - fmt::print("{:%#oQ %q}", 42q_m); // 052 m - fmt::print("{:%#xQ %q}", 42q_m); // 0x2a m - fmt::print("{:%#XQ %q}", 42q_m); // 0X2A m + fmt::print("{:%#bQ %q}", 42_q_m); // 0b101010 m + fmt::print("{:%#BQ %q}", 42_q_m); // 0B101010 m + fmt::print("{:%#oQ %q}", 42_q_m); // 052 m + fmt::print("{:%#xQ %q}", 42_q_m); // 0x2a m + fmt::print("{:%#XQ %q}", 42_q_m); // 0X2A m For floating-point values the :token:`units-rep-type` token works as follows:: - fmt::print("{:%aQ %q}", 1.2345678q_m); // 0x9.e065152d8eae841p-3 m - fmt::print("{:%.3aQ %q}", 1.2345678q_m); // 0x9.e06p-3 m - fmt::print("{:%AQ %q}", 1.2345678q_m); // 0X9.E065152D8EAE841P-3 m - fmt::print("{:%.3AQ %q}", 1.2345678q_m); // 0X9.E06P-3 m - fmt::print("{:%eQ %q}", 1.2345678q_m); // 1.234568e+00 m - fmt::print("{:%.3eQ %q}", 1.2345678q_m); // 1.235e+00 m - fmt::print("{:%EQ %q}", 1.2345678q_m); // 1.234568E+00 m - fmt::print("{:%.3EQ %q}", 1.2345678q_m); // 1.235E+00 m - fmt::print("{:%gQ %q}", 1.2345678q_m); // 1.23457 m - fmt::print("{:%gQ %q}", 1.2345678e8q_m); // 1.23457e+08 m - fmt::print("{:%.3gQ %q}", 1.2345678q_m); // 1.23 m - fmt::print("{:%.3gQ %q}", 1.2345678e8q_m); // 1.23e+08 m - fmt::print("{:%GQ %q}", 1.2345678q_m); // 1.23457 m - fmt::print("{:%GQ %q}", 1.2345678e8q_m); // 1.23457E+08 m - fmt::print("{:%.3GQ %q}", 1.2345678q_m); // 1.23 m - fmt::print("{:%.3GQ %q}", 1.2345678e8q_m); // 1.23E+08 m + fmt::print("{:%aQ %q}", 1.2345678_q_m); // 0x9.e065152d8eae841p-3 m + fmt::print("{:%.3aQ %q}", 1.2345678_q_m); // 0x9.e06p-3 m + fmt::print("{:%AQ %q}", 1.2345678_q_m); // 0X9.E065152D8EAE841P-3 m + fmt::print("{:%.3AQ %q}", 1.2345678_q_m); // 0X9.E06P-3 m + fmt::print("{:%eQ %q}", 1.2345678_q_m); // 1.234568e+00 m + fmt::print("{:%.3eQ %q}", 1.2345678_q_m); // 1.235e+00 m + fmt::print("{:%EQ %q}", 1.2345678_q_m); // 1.234568E+00 m + fmt::print("{:%.3EQ %q}", 1.2345678_q_m); // 1.235E+00 m + fmt::print("{:%gQ %q}", 1.2345678_q_m); // 1.23457 m + fmt::print("{:%gQ %q}", 1.2345678e8_q_m); // 1.23457e+08 m + fmt::print("{:%.3gQ %q}", 1.2345678_q_m); // 1.23 m + fmt::print("{:%.3gQ %q}", 1.2345678e8_q_m); // 1.23e+08 m + fmt::print("{:%GQ %q}", 1.2345678_q_m); // 1.23457 m + fmt::print("{:%GQ %q}", 1.2345678e8_q_m); // 1.23457E+08 m + fmt::print("{:%.3GQ %q}", 1.2345678_q_m); // 1.23 m + fmt::print("{:%.3GQ %q}", 1.2345678e8_q_m); // 1.23E+08 m Special Signs @@ -208,7 +208,7 @@ Special Signs Beside adding any list of regular characters as a separator between the value and the symbol, it is possible to type a few special signs there too:: - fmt::print("{:%Q_%q}", 123q_km); // 123_km - fmt::print("{:%Q%t%q}", 123q_km); // 123\tkm - fmt::print("{:%Q%n%q}", 123q_km); // 123\nkm - fmt::print("{:%Q%% %q}", 123q_km); // 123% km + fmt::print("{:%Q_%q}", 123_q_km); // 123_km + fmt::print("{:%Q%t%q}", 123_q_km); // 123\tkm + fmt::print("{:%Q%n%q}", 123_q_km); // 123\nkm + fmt::print("{:%Q%% %q}", 123_q_km); // 123% km diff --git a/docs/framework/units.rst b/docs/framework/units.rst index be36e46b..52c9479e 100644 --- a/docs/framework/units.rst +++ b/docs/framework/units.rst @@ -381,7 +381,7 @@ unknown/undefined unit type like in the below example:: using namespace units::physical::si::literals; - Length auto l = 100q_km_per_h * 10q_s; + Length auto l = 100_q_km_per_h * 10_q_s; The type of ``l`` above will be :expr:`si::length, long double>`. This is caused diff --git a/docs/quick_start.rst b/docs/quick_start.rst index b30688e4..28c3b738 100644 --- a/docs/quick_start.rst +++ b/docs/quick_start.rst @@ -4,22 +4,22 @@ Quick Start Here is a small example of possible operations:: // simple numeric operations - static_assert(10q_km / 2 == 5q_km); + static_assert(10_q_km / 2 == 5_q_km); // unit conversions - static_assert(1q_h == 3600q_s); - static_assert(1q_km + 1q_m == 1001q_m); + static_assert(1_q_h == 3600_q_s); + static_assert(1_q_km + 1_q_m == 1001_q_m); // dimension conversions - static_assert(1q_km / 1q_s == 1000q_m_per_s); - static_assert(2q_km_per_h * 2q_h == 4q_km); - static_assert(2q_km / 2q_km_per_h == 1q_h); + static_assert(1_q_km / 1_q_s == 1000_q_m_per_s); + static_assert(2_q_km_per_h * 2_q_h == 4_q_km); + static_assert(2_q_km / 2_q_km_per_h == 1_q_h); - static_assert(2q_m * 3q_m == 6q_m2); + static_assert(2_q_m * 3_q_m == 6_q_m2); - static_assert(10q_km / 5q_km == 2); + static_assert(10_q_km / 5_q_km == 2); - static_assert(1000 / 1q_s == 1q_kHz); + static_assert(1000 / 1_q_s == 1_q_kHz); .. admonition:: Try it on Compiler Explorer @@ -46,7 +46,7 @@ of basic library features:: int main() { using namespace units::physical::si::literals; - Speed auto v1 = avg_speed(220q_km, 2q_h); + Speed auto v1 = avg_speed(220_q_km, 2_q_h); Speed auto v2 = avg_speed(si::length(140), si::time(2)); Speed auto v3 = quantity_cast(v2); Speed auto v4 = quantity_cast(v3); diff --git a/docs/use_cases/custom_representation_types.rst b/docs/use_cases/custom_representation_types.rst index f650a0f3..dce853fe 100644 --- a/docs/use_cases/custom_representation_types.rst +++ b/docs/use_cases/custom_representation_types.rst @@ -90,7 +90,7 @@ representation types we have to obey similar rules:: This also applies when we want to create a quantity with a custom representation type from a regular quantity value:: - Length auto d = 123q_m; + Length auto d = 123_q_m; si::length d1(d); // OK si::length d2(d); // Compile-time error si::length d3(quantity_cast(d)); // OK diff --git a/docs/use_cases/extensions.rst b/docs/use_cases/extensions.rst index 2df24018..b36e11a0 100644 --- a/docs/use_cases/extensions.rst +++ b/docs/use_cases/extensions.rst @@ -130,7 +130,7 @@ coherent unit:: With the above we can now check what is the production rate:: - DeskRate auto rate = quantity_cast(3._d / 20q_min); + DeskRate auto rate = quantity_cast(3._d / 20_q_min); std::cout << "Desk rate: " << rate << '\n'; // prints 'Desk rate: 9 desk/h' and how much wood is being consumed over a unit of time:: diff --git a/docs/use_cases/linear_algebra.rst b/docs/use_cases/linear_algebra.rst index 804bf8b5..0a138f02 100644 --- a/docs/use_cases/linear_algebra.rst +++ b/docs/use_cases/linear_algebra.rst @@ -27,28 +27,28 @@ The official :term:`quantity` definition states: So the most common use case would be to create a vector or matrix of quantities:: - fs_vector, 3> v = { 1q_m, 2q_m, 3q_m }; - fs_vector, 3> u = { 3q_m, 2q_m, 1q_m }; - fs_vector, 3> t = { 3q_km, 2q_km, 1q_km }; + fs_vector, 3> v = { 1_q_m, 2_q_m, 3_q_m }; + fs_vector, 3> u = { 3_q_m, 2_q_m, 1_q_m }; + fs_vector, 3> t = { 3_q_km, 2_q_km, 1_q_km }; Having such definitions we can perform full dimensional analysis operations for the operations allowed by the Linear Algebra rules. For example:: - std::cout << "v + u = " << v + u << "\n"; - std::cout << "v + t = " << v + t << "\n"; - std::cout << "t[m] = " << vector>(t) << "\n"; - std::cout << "v * u = " << v * u << "\n"; - std::cout << "2q_m * v = " << 2q_m * v << "\n"; + std::cout << "v + u = " << v + u << "\n"; + std::cout << "v + t = " << v + t << "\n"; + std::cout << "t[m] = " << vector>(t) << "\n"; + std::cout << "v * u = " << v * u << "\n"; + std::cout << "2_q_m * v = " << 2_q_m * v << "\n"; The above code works as expected and produces the following output: .. code-block:: text - v + u = | 4 m 4 m 4 m | - v + t = | 3001 m 2002 m 1003 m | - t[m] = | 3000 m 2000 m 1000 m | - v * u = 10 m² - 2q_m * v = | 2 m² 4 m² 6 m² | + v + u = | 4 m 4 m 4 m | + v + t = | 3001 m 2002 m 1003 m | + t[m] = | 3000 m 2000 m 1000 m | + v * u = 10 m² + 2_q_m * v = | 2 m² 4 m² 6 m² | Quantities of Linear Algebra Types @@ -74,14 +74,14 @@ output: .. code-block:: text - v + u = | 4 4 4 | m - v + t = | 3001 2002 1003 | m - t[m] = | 3000 2000 1000 | m - v * u = 10 m² - 2q_m * v = | 2 4 6 | m² + v + u = | 4 4 4 | m + v + t = | 3001 2002 1003 | m + t[m] = | 3000 2000 1000 | m + v * u = 10 m² + 2_q_m * v = | 2 4 6 | m² .. seealso:: For more examples of Linear Algebra definition and operations please refer to - the :ref:`linear_algebra` example. \ No newline at end of file + the :ref:`linear_algebra` example. diff --git a/docs/use_cases/unknown_dimensions.rst b/docs/use_cases/unknown_dimensions.rst index c71ea45b..58764028 100644 --- a/docs/use_cases/unknown_dimensions.rst +++ b/docs/use_cases/unknown_dimensions.rst @@ -26,7 +26,7 @@ will determine its type. The same applies to the resulting unit. For example: using namespace units::physical::si; - constexpr auto result = 144q_km / 2q_h; + constexpr auto result = 144_q_km / 2_q_h; static_assert(is_same_v); static_assert(is_same_v); @@ -44,7 +44,7 @@ we forget to include a header file with the resulting dimension definition: using namespace units::physical::si; - constexpr auto result = 144q_km / 2q_h; + constexpr auto result = 144_q_km / 2_q_h; static_assert(is_same_v, exponent>>); static_assert(is_same_v= 1q_V) + if (Vt >= 1_q_V) std::cout << Vt; - else if (Vt >= 1q_mV) + else if (Vt >= 1_q_mV) std::cout << voltage::mV<>{Vt}; - else if (Vt >= 1q_uV) + else if (Vt >= 1_q_uV) std::cout << voltage::uV<>{Vt}; - else if (Vt >= 1q_nV) + else if (Vt >= 1_q_nV) std::cout << voltage::nV<>{Vt}; else std::cout << voltage::pV<>{Vt}; diff --git a/example/alternative_namespaces/clcpp_response.cpp b/example/alternative_namespaces/clcpp_response.cpp index 6d295ed6..ab79d586 100644 --- a/example/alternative_namespaces/clcpp_response.cpp +++ b/example/alternative_namespaces/clcpp_response.cpp @@ -33,12 +33,12 @@ void simple_quantities() using distance = length::m<>; using q_time = q_time::s<>; - constexpr distance km = 1.0q_km; - constexpr distance miles = 1.0q_mi; + constexpr distance km = 1.0_q_km; + constexpr distance miles = 1.0_q_mi; - constexpr q_time sec = 1q_s; - constexpr q_time min = 1q_min; - constexpr q_time hr = 1q_h; + constexpr q_time sec = 1_q_s; + constexpr q_time min = 1_q_min; + constexpr q_time hr = 1_q_h; std::cout << "A physical quantities library can choose the simple\n"; std::cout << "option to provide output using a single type for each base unit:\n\n"; @@ -51,12 +51,12 @@ void simple_quantities() void quantities_with_typed_units() { - constexpr length::km<> km = 1.0q_km; - constexpr length::mi<> miles = 1.0q_mi; + constexpr length::km<> km = 1.0_q_km; + constexpr length::mi<> miles = 1.0_q_mi; - constexpr q_time::s<> sec = 1q_s; - constexpr q_time::min<> min = 1q_min; - constexpr q_time::h<> hr = 1q_h; + constexpr q_time::s<> sec = 1_q_s; + constexpr q_time::min<> min = 1_q_min; + constexpr q_time::h<> hr = 1_q_h; std::cout << "A more flexible option is to provide separate types for each unit,\n\n"; std::cout << km << '\n'; @@ -65,7 +65,7 @@ void quantities_with_typed_units() std::cout << min << '\n'; std::cout << hr << "\n\n"; - constexpr length::m<> meter = 1q_m; + constexpr length::m<> meter = 1_q_m; std::cout << "then a wide range of pre-defined units can be defined and converted,\n" " for consistency and repeatability across applications:\n\n"; @@ -97,8 +97,8 @@ void calcs_comparison() "when adding two values of the same very big\n" "or very small type:\n\n"; - length::fm L1A = 2.q_fm; - length::fm L2A = 3.q_fm; + length::fm L1A = 2._q_fm; + length::fm L2A = 3._q_fm; length::fm LrA = L1A + L2A; fmt::print("{:%.30Q %q}\n + {:%.30Q %q}\n = {:%.30Q %q}\n\n",L1A,L2A,LrA); diff --git a/example/alternative_namespaces/conversion_factor.cpp b/example/alternative_namespaces/conversion_factor.cpp index 8e11a66e..cfd9cb31 100644 --- a/example/alternative_namespaces/conversion_factor.cpp +++ b/example/alternative_namespaces/conversion_factor.cpp @@ -47,7 +47,7 @@ int main() { std::cout << "conversion factor in mpusz/units...\n\n"; - constexpr length::m<> lengthA = 2.0q_m; + constexpr length::m<> lengthA = 2.0_q_m; constexpr length::mm<> lengthB = lengthA; std::cout << "lengthA( " << lengthA << " ) and lengthB( " << lengthB << " )\n" diff --git a/example/alternative_namespaces/timer.cpp b/example/alternative_namespaces/timer.cpp index 3f173f4b..520a1f72 100644 --- a/example/alternative_namespaces/timer.cpp +++ b/example/alternative_namespaces/timer.cpp @@ -13,7 +13,7 @@ int main() { std::cout << "Simple timer using mpusz/units ...\n"; - auto const period = 0.5q_s; + auto const period = 0.5_q_s; auto const duration = 10 * period; timer t; diff --git a/example/avg_speed.cpp b/example/avg_speed.cpp index ce7d3782..7021ee0d 100644 --- a/example/avg_speed.cpp +++ b/example/avg_speed.cpp @@ -68,7 +68,7 @@ void example() // SI (int) { using namespace units::physical::si::literals; - constexpr Length auto distance = 220q_km; // constructed from a UDL + constexpr Length auto distance = 220_q_km; // constructed from a UDL constexpr si::time duration(2); // constructed from a value std::cout << "SI units with 'int' as representation\n"; @@ -82,7 +82,7 @@ void example() // SI (double) { using namespace units::physical::si::literals; - constexpr Length auto distance = 220.q_km; // constructed from a UDL + constexpr Length auto distance = 220._q_km; // constructed from a UDL constexpr si::time duration(2); // constructed from a value std::cout << "\nSI units with 'double' as representation\n"; @@ -98,7 +98,7 @@ void example() // Customary Units (int) { using namespace units::physical::international::literals; - constexpr Length auto distance = 140q_mi; // constructed from a UDL + constexpr Length auto distance = 140_q_mi; // constructed from a UDL constexpr si::time duration(2); // constructed from a value std::cout << "\nUS Customary Units with 'int' as representation\n"; @@ -114,8 +114,8 @@ void example() // Customary Units (double) { using namespace units::physical::international::literals; - constexpr Length auto distance = 140.q_mi; // constructed from a UDL - constexpr si::time duration(2); // constructed from a value + constexpr Length auto distance = 140._q_mi; // constructed from a UDL + constexpr si::time duration(2); // constructed from a value std::cout << "\nUS Customary Units with 'double' as representation\n"; @@ -132,7 +132,7 @@ void example() // CGS (int) { using namespace units::physical::cgs::literals; - constexpr Length auto distance = 22'000'000q_cm; // constructed from a UDL + constexpr Length auto distance = 22'000'000_q_cm; // constructed from a UDL constexpr cgs::time duration(2); // constructed from a value std::cout << "\nCGS units with 'int' as representation\n"; @@ -151,8 +151,8 @@ void example() // CGS (double) { using namespace units::physical::cgs::literals; - constexpr Length auto distance = 22'000'000.q_cm; // constructed from a UDL - constexpr cgs::time duration(2); // constructed from a value + constexpr Length auto distance = 22'000'000._q_cm; // constructed from a UDL + constexpr cgs::time duration(2); // constructed from a value std::cout << "\nCGS units with 'double' as representation\n"; diff --git a/example/box_example.cpp b/example/box_example.cpp index 2329a287..cb2c6d38 100644 --- a/example/box_example.cpp +++ b/example/box_example.cpp @@ -25,7 +25,7 @@ inline constexpr auto g = si::si2019::standard_gravity<>; } // namespace struct Box { - static constexpr auto air_density = 1.225q_kg_per_m3; + static constexpr auto air_density = 1.225_q_kg_per_m3; si::length length; si::length width; @@ -65,11 +65,11 @@ struct Box { int main() { - auto box = Box(1000.0q_mm, 500.0q_mm, 200.0q_mm); - box.set_contents_density(1000.0q_kg_per_m3); + auto box = Box(1000.0_q_mm, 500.0_q_mm, 200.0_q_mm); + box.set_contents_density(1000.0_q_kg_per_m3); - const auto fill_time = 200.0q_s; // time since starting fill - const auto measured_mass = 20.0q_kg; // measured mass at fill_time + const auto fill_time = 200.0_q_s; // time since starting fill + const auto measured_mass = 20.0_q_kg; // measured mass at fill_time std::cout << "mp-units box example...\n"; std::cout << "fill height at " << fill_time << " = " << box.fill_level(measured_mass) << " (" diff --git a/example/capacitor_time_curve.cpp b/example/capacitor_time_curve.cpp index 51a3e446..f2709af1 100644 --- a/example/capacitor_time_curve.cpp +++ b/example/capacitor_time_curve.cpp @@ -36,22 +36,22 @@ int main() std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield); std::cout.precision(3); - constexpr auto C = 0.47q_uF; - constexpr auto V0 = 5.0q_V; - constexpr auto R = 4.7q_kR; + constexpr auto C = 0.47_q_uF; + constexpr auto V0 = 5.0_q_V; + constexpr auto R = 4.7_q_kR; - for (auto t = 0q_ms; t <= 50q_ms; ++t) { + for (auto t = 0_q_ms; t <= 50_q_ms; ++t) { const Voltage auto Vt = V0 * units::exp(-t / (R * C)); std::cout << "at " << t << " voltage is "; - if (Vt >= 1q_V) + if (Vt >= 1_q_V) std::cout << Vt; - else if (Vt >= 1q_mV) + else if (Vt >= 1_q_mV) std::cout << quantity_cast(Vt); - else if (Vt >= 1q_uV) + else if (Vt >= 1_q_uV) std::cout << quantity_cast(Vt); - else if (Vt >= 1q_nV) + else if (Vt >= 1_q_nV) std::cout << quantity_cast(Vt); else std::cout << quantity_cast(Vt); diff --git a/example/clcpp_response.cpp b/example/clcpp_response.cpp index c117ed25..c8e7f913 100644 --- a/example/clcpp_response.cpp +++ b/example/clcpp_response.cpp @@ -39,12 +39,12 @@ void simple_quantities() using distance = length; using duration = physical::si::time; - constexpr distance km = 1.0q_km; - constexpr distance miles = 1.0q_mi; + constexpr distance km = 1.0_q_km; + constexpr distance miles = 1.0_q_mi; - constexpr duration sec = 1q_s; - constexpr duration min = 1q_min; - constexpr duration hr = 1q_h; + constexpr duration sec = 1_q_s; + constexpr duration min = 1_q_min; + constexpr duration hr = 1_q_h; std::cout << "A physical quantities library can choose the simple\n"; std::cout << "option to provide output using a single type for each base unit:\n\n"; @@ -61,14 +61,14 @@ void quantities_with_typed_units() using namespace units::physical::si; using namespace units::physical::international; - constexpr length km = 1.0q_km; - constexpr length miles = 1.0q_mi; + constexpr length km = 1.0_q_km; + constexpr length miles = 1.0_q_mi; std::cout.precision(6); - constexpr si::time sec = 1q_s; - constexpr si::time min = 1q_min; - constexpr si::time hr = 1q_h; + constexpr si::time sec = 1_q_s; + constexpr si::time min = 1_q_min; + constexpr si::time hr = 1_q_h; std::cout << "A more flexible option is to provide separate types for each unit,\n\n"; std::cout << km << '\n'; @@ -77,7 +77,7 @@ void quantities_with_typed_units() std::cout << min << '\n'; std::cout << hr << "\n\n"; - constexpr length meter = 1q_m; + constexpr length meter = 1_q_m; std::cout << "then a wide range of pre-defined units can be defined and converted,\n" " for consistency and repeatability across applications:\n\n"; @@ -111,8 +111,8 @@ void calcs_comparison() "when adding two values of the same very big\n" "or very small type:\n\n"; - length L1A = 2.q_fm; - length L2A = 3.q_fm; + length L1A = 2._q_fm; + length L2A = 3._q_fm; length LrA = L1A + L2A; fmt::print("{:%.30Q %q}\n + {:%.30Q %q}\n = {:%.30Q %q}\n\n",L1A,L2A,LrA); diff --git a/example/conversion_factor.cpp b/example/conversion_factor.cpp index 3f9ed02d..fd73b03a 100644 --- a/example/conversion_factor.cpp +++ b/example/conversion_factor.cpp @@ -45,7 +45,7 @@ int main() std::cout << "conversion factor in mp-units...\n\n"; - constexpr length lengthA = 2.0q_m; + constexpr length lengthA = 2.0_q_m; constexpr length lengthB = lengthA; std::cout << fmt::format("lengthA( {} ) and lengthB( {} )\n", lengthA, lengthB) diff --git a/example/experimental_angle.cpp b/example/experimental_angle.cpp index 620ebe98..c0911caf 100644 --- a/example/experimental_angle.cpp +++ b/example/experimental_angle.cpp @@ -31,8 +31,8 @@ using namespace units::physical::si::literals; int main() { - auto torque = 20.0q_Nm; - auto energy = 20.0q_J; + auto torque = 20.0_q_Nm; + auto energy = 20.0_q_J; physical::Angle auto angle = torque / energy; diff --git a/example/foot_pound_second.cpp b/example/foot_pound_second.cpp index a5ba214f..6c51fc05 100644 --- a/example/foot_pound_second.cpp +++ b/example/foot_pound_second.cpp @@ -67,7 +67,7 @@ auto fmt_line(const Q a) void print_details(std::string_view description, const Ship& ship) { using namespace units::physical::fps::literals; - const auto waterDensity = 62.4q_lb_per_ft3; + const auto waterDensity = 62.4_q_lb_per_ft3; std::cout << fmt::format("{}\n", description); std::cout << fmt::format("{:20} : {}\n", "length", fmt_line, si::length>(ship.length)) << fmt::format("{:20} : {}\n", "draft", fmt_line, si::length>(ship.draft)) @@ -87,13 +87,13 @@ int main() using namespace units::physical::fps::literals; // KMS Bismark, using the units the Germans would use, taken from Wiki - auto bismark = Ship{.length{251.q_m}, .draft{9.3q_m}, .beam{36q_m}, .speed{56q_km_per_h}, .mass{50'300q_t}, .mainGuns{380q_mm}, .shellMass{800q_kg}, .shellSpeed{820.q_m_per_s}, .power{110.45q_kW}}; + auto bismark = Ship{.length{251._q_m}, .draft{9.3_q_m}, .beam{36_q_m}, .speed{56_q_km_per_h}, .mass{50'300_q_t}, .mainGuns{380_q_mm}, .shellMass{800_q_kg}, .shellSpeed{820._q_m_per_s}, .power{110.45_q_kW}}; // USS Iowa, using units from the foot-pound-second system - auto iowa = Ship{.length{860.q_ft}, .draft{37.q_ft + 2.q_in}, .beam{108.q_ft + 2.q_in}, .speed{33q_knot}, .mass{57'540q_lton}, .mainGuns{16q_in}, .shellMass{2700q_lb}, .shellSpeed{2690.q_ft_per_s}, .power{212'000q_hp}}; + auto iowa = Ship{.length{860._q_ft}, .draft{37._q_ft + 2._q_in}, .beam{108._q_ft + 2._q_in}, .speed{33_q_knot}, .mass{57'540_q_lton}, .mainGuns{16_q_in}, .shellMass{2700_q_lb}, .shellSpeed{2690._q_ft_per_s}, .power{212'000_q_hp}}; // HMS King George V, using units from the foot-pound-second system - auto kgv = Ship{.length{745.1q_ft}, .draft{33.q_ft + 7.5q_in}, .beam{103.2q_ft + 2.5q_in}, .speed{28.3q_knot}, .mass{42'245q_lton}, .mainGuns{14q_in}, .shellMass{1'590q_lb}, .shellSpeed{2483.q_ft_per_s}, .power{110'000q_hp}}; + auto kgv = Ship{.length{745.1_q_ft}, .draft{33._q_ft + 7.5_q_in}, .beam{103.2_q_ft + 2.5_q_in}, .speed{28.3_q_knot}, .mass{42'245_q_lton}, .mainGuns{14_q_in}, .shellMass{1'590_q_lb}, .shellSpeed{2483._q_ft_per_s}, .power{110'000_q_hp}}; print_details("KMS Bismark, defined in appropriate units from the SI system", bismark); std::cout << "\n\n"; diff --git a/example/glide_computer.cpp b/example/glide_computer.cpp index 36d2840e..82d2085c 100644 --- a/example/glide_computer.cpp +++ b/example/glide_computer.cpp @@ -217,10 +217,10 @@ struct glider { auto get_gliders() { const std::array gliders = { - glider{"SZD-30 Pirat", {velocity(83q_km_per_h), rate_of_climb(-0.7389q_m_per_s)}}, - glider{"SZD-51 Junior", {velocity(80q_km_per_h), rate_of_climb(-0.6349q_m_per_s)}}, - glider{"SZD-48 Jantar Std 3", {velocity(110q_km_per_h), rate_of_climb(-0.77355q_m_per_s)}}, - glider{"SZD-56 Diana", {velocity(110q_km_per_h), rate_of_climb(-0.63657q_m_per_s)}} + glider{"SZD-30 Pirat", {velocity(83_q_km_per_h), rate_of_climb(-0.7389_q_m_per_s)}}, + glider{"SZD-51 Junior", {velocity(80_q_km_per_h), rate_of_climb(-0.6349_q_m_per_s)}}, + glider{"SZD-48 Jantar Std 3", {velocity(110_q_km_per_h), rate_of_climb(-0.77355_q_m_per_s)}}, + glider{"SZD-56 Diana", {velocity(110_q_km_per_h), rate_of_climb(-0.63657_q_m_per_s)}} }; return gliders; } @@ -258,9 +258,9 @@ struct weather { auto get_weather_conditions() { const std::array weather_conditions = { - std::pair("Good", weather{height(1900q_m), rate_of_climb(4.3q_m_per_s)}), - std::pair("Medium", weather{height(1550q_m), rate_of_climb(2.8q_m_per_s)}), - std::pair("Bad", weather{height(850q_m), rate_of_climb(1.8q_m_per_s)}) + std::pair("Good", weather{height(1900_q_m), rate_of_climb(4.3_q_m_per_s)}), + std::pair("Medium", weather{height(1550_q_m), rate_of_climb(2.8_q_m_per_s)}), + std::pair("Bad", weather{height(850_q_m), rate_of_climb(1.8_q_m_per_s)}) }; return weather_conditions; } @@ -462,7 +462,7 @@ void estimate(const glider& g, const weather& w, const task& t, const safety& s, // circle in a thermall to gain height point = circle(point, g, w, t, height_to_gain); } - while(height_to_gain > height(0q_m)); + while(height_to_gain > height(0_q_m)); // final glide point = final_glide(point, g, t); @@ -482,16 +482,16 @@ void example() print(weather_conditions); const task t = { - waypoint{"EPPR", altitude(16q_ft)}, - waypoint{"EPGI", altitude(115q_ft)}, - distance(81.7q_km) + waypoint{"EPPR", altitude(16_q_ft)}, + waypoint{"EPGI", altitude(115_q_ft)}, + distance(81.7_q_km) }; print(t); - const safety s = {height(300q_m)}; + const safety s = {height(300_q_m)}; print(s); - const aircraft_tow tow = {height(400q_m), rate_of_climb(1.6q_m_per_s)}; + const aircraft_tow tow = {height(400_q_m), rate_of_climb(1.6_q_m_per_s)}; print(tow); for(const auto& g : gliders) { diff --git a/example/hello_units.cpp b/example/hello_units.cpp index a49d12cb..73e31fb4 100644 --- a/example/hello_units.cpp +++ b/example/hello_units.cpp @@ -35,7 +35,7 @@ constexpr Speed auto avg_speed(Length auto d, Time auto t) int main() { using namespace units::physical::si::literals; - Speed auto v1 = avg_speed(220q_km, 2q_h); + Speed auto v1 = avg_speed(220_q_km, 2_q_h); Speed auto v2 = avg_speed(si::length(140), si::time(2)); Speed auto v3 = quantity_cast(v2); Speed auto v4 = quantity_cast(v3); diff --git a/example/kalman_filter-alpha_beta_filter_example2.cpp b/example/kalman_filter-alpha_beta_filter_example2.cpp index 72369ea8..13eeabf6 100644 --- a/example/kalman_filter-alpha_beta_filter_example2.cpp +++ b/example/kalman_filter-alpha_beta_filter_example2.cpp @@ -21,7 +21,7 @@ struct state_variable { using namespace units::physical; using namespace units::physical::si::literals; -constexpr auto radar_transmit_interval = 5.0q_s; +constexpr auto radar_transmit_interval = 5.0_q_s; constexpr double kalman_range_gain = 0.2; constexpr double kalman_speed_gain = 0.1; @@ -52,16 +52,16 @@ int main() std::cout << "\n\n1d aircraft α-β filter example2 from https://www.kalmanfilter.net/alphabeta.html#ex2"; std::cout << "\n\n"; - constexpr auto measurements = std::array{0.0q_m, // N.B measurement[0] is unknown and unused - 30110.0q_m, 30265.0q_m, 30740.0q_m, 30750.0q_m, 31135.0q_m, - 31015.0q_m, 31180.0q_m, 31610.0q_m, 31960.0q_m, 31865.0q_m}; + constexpr auto measurements = std::array{0.0_q_m, // N.B measurement[0] is unknown and unused + 30110.0_q_m, 30265.0_q_m, 30740.0_q_m, 30750.0_q_m, 31135.0_q_m, + 31015.0_q_m, 31180.0_q_m, 31610.0_q_m, 31960.0_q_m, 31865.0_q_m}; constexpr auto num_measurements = measurements.size(); std::array track; // We need an initial estimate of track[0] as there is no previous state to get a prediction from - track[0].range.estimated_current_state = 30'000q_m; - track[0].speed.estimated_current_state = 40.0q_m_per_s; + track[0].range.estimated_current_state = 30'000_q_m; + track[0].speed.estimated_current_state = 40.0_q_m_per_s; for (auto n = 0U; n < num_measurements; ++n) { if (n > 0) { diff --git a/example/linear_algebra.cpp b/example/linear_algebra.cpp index e2506fac..fcf336a1 100644 --- a/example/linear_algebra.cpp +++ b/example/linear_algebra.cpp @@ -68,9 +68,9 @@ void vector_of_quantity_add() { std::cout << "\nvector_of_quantity_add:\n"; - vector> v = { 1q_m, 2q_m, 3q_m }; - vector> u = { 3q_m, 2q_m, 1q_m }; - vector> t = { 3q_km, 2q_km, 1q_km }; + vector> v = { 1_q_m, 2_q_m, 3_q_m }; + vector> u = { 3_q_m, 2_q_m, 1_q_m }; + vector> t = { 3_q_km, 2_q_km, 1_q_km }; std::cout << "v = " << v << "\n"; std::cout << "u = " << u << "\n"; @@ -85,28 +85,28 @@ void vector_of_quantity_multiply_same() { std::cout << "\nvector_of_quantity_multiply_same:\n"; - vector> v = { 1q_m, 2q_m, 3q_m }; - vector> u = { 3q_m, 2q_m, 1q_m }; + vector> v = { 1_q_m, 2_q_m, 3_q_m }; + vector> u = { 3_q_m, 2_q_m, 1_q_m }; std::cout << "v = " << v << "\n"; std::cout << "u = " << u << "\n"; std::cout << "v * u = " << v * u << "\n"; - std::cout << "2q_m * v = " << 2.q_m * v << "\n"; + std::cout << "2_q_m * v = " << 2._q_m * v << "\n"; } void vector_of_quantity_multiply_different() { std::cout << "\nvector_of_quantity_multiply_different:\n"; - vector> v = { 1q_N, 2q_N, 3q_N }; - vector> u = { 3q_m, 2q_m, 1q_m }; + vector> v = { 1_q_N, 2_q_N, 3_q_N }; + vector> u = { 3_q_m, 2_q_m, 1_q_m }; std::cout << "v = " << v << "\n"; std::cout << "u = " << u << "\n"; std::cout << "v * u = " << v * u << "\n"; - std::cout << "2q_N * u = " << 2.q_N * u << "\n"; + std::cout << "2_q_N * u = " << 2._q_N * u << "\n"; std::cout << "2 * u = " << 2 * u << "\n"; } @@ -114,12 +114,12 @@ void vector_of_quantity_divide_by_scalar() { std::cout << "\nvector_of_quantity_divide_by_scalar:\n"; - vector> v = { 4q_m, 8q_m, 12q_m }; + vector> v = { 4_q_m, 8_q_m, 12_q_m }; std::cout << "v = " << v << "\n"; // TODO Uncomment when bug in the LA is fixed - // std::cout << "v / 2q_s = " << v / 2q_s << "\n"; + // std::cout << "v / 2_q_s = " << v / 2_q_s << "\n"; // std::cout << "v / 2 = " << v / 2 << "\n"; } @@ -135,9 +135,9 @@ void matrix_of_quantity_add() { std::cout << "\nmatrix_of_quantity_add:\n"; - matrix> v = {{ 1q_m, 2q_m, 3q_m }, { 4q_m, 5q_m, 6q_m }, { 7q_m, 8q_m, 9q_m }}; - matrix> u = {{ 3q_m, 2q_m, 1q_m }, { 3q_m, 2q_m, 1q_m }, { 3q_m, 2q_m, 1q_m }}; - matrix> t = {{ 3q_mm, 2q_mm, 1q_mm }, { 3q_mm, 2q_mm, 1q_mm }, { 3q_mm, 2q_mm, 1q_mm }}; + matrix> v = {{ 1_q_m, 2_q_m, 3_q_m }, { 4_q_m, 5_q_m, 6_q_m }, { 7_q_m, 8_q_m, 9_q_m }}; + matrix> u = {{ 3_q_m, 2_q_m, 1_q_m }, { 3_q_m, 2_q_m, 1_q_m }, { 3_q_m, 2_q_m, 1_q_m }}; + matrix> t = {{ 3_q_mm, 2_q_mm, 1_q_mm }, { 3_q_mm, 2_q_mm, 1_q_mm }, { 3_q_mm, 2_q_mm, 1_q_mm }}; std::cout << "v =\n" << v << "\n"; std::cout << "u =\n" << u << "\n"; @@ -154,28 +154,28 @@ void matrix_of_quantity_multiply_same() { std::cout << "\nmatrix_of_quantity_multiply_same:\n"; - matrix> v = {{ 1q_m, 2q_m, 3q_m }, { 4q_m, 5q_m, 6q_m }, { 7q_m, 8q_m, 9q_m }}; - vector> u = { 3q_m, 2q_m, 1q_m }; + matrix> v = {{ 1_q_m, 2_q_m, 3_q_m }, { 4_q_m, 5_q_m, 6_q_m }, { 7_q_m, 8_q_m, 9_q_m }}; + vector> u = { 3_q_m, 2_q_m, 1_q_m }; std::cout << "v =\n" << v << "\n"; std::cout << "u =\n" << u << "\n"; std::cout << "v * u =\n" << v * u << "\n"; - std::cout << "2q_m * u =\n" << 2.q_m * u << "\n"; + std::cout << "2_q_m * u =\n" << 2._q_m * u << "\n"; } void matrix_of_quantity_multiply_different() { std::cout << "\nmatrix_of_quantity_multiply_different:\n"; - vector> v = { 1q_N, 2q_N, 3q_N }; - matrix> u = {{ 1q_m, 2q_m, 3q_m }, { 4q_m, 5q_m, 6q_m }, { 7q_m, 8q_m, 9q_m }}; + vector> v = { 1_q_N, 2_q_N, 3_q_N }; + matrix> u = {{ 1_q_m, 2_q_m, 3_q_m }, { 4_q_m, 5_q_m, 6_q_m }, { 7_q_m, 8_q_m, 9_q_m }}; std::cout << "v =\n" << v << "\n"; std::cout << "u =\n" << u << "\n"; std::cout << "v * u =\n" << v * u << "\n"; - std::cout << "2q_N * u =\n" << 2.q_N * u << "\n"; + std::cout << "2_q_N * u =\n" << 2._q_N * u << "\n"; std::cout << "2 * u =\n" << 2 * u << "\n"; } @@ -183,12 +183,12 @@ void matrix_of_quantity_divide_by_scalar() { std::cout << "\nmatrix_of_quantity_divide_by_scalar:\n"; - matrix> v = {{ 2q_m, 4q_m, 6q_m }, { 4q_m, 6q_m, 8q_m }, { 8q_m, 4q_m, 2q_m }}; + matrix> v = {{ 2_q_m, 4_q_m, 6_q_m }, { 4_q_m, 6_q_m, 8_q_m }, { 8_q_m, 4_q_m, 2_q_m }}; std::cout << "v =\n" << v << "\n"; // TODO Uncomment when bug in the LA is fixed - // std::cout << "v / 2q_s =\n" << v / 2q_s << "\n"; + // std::cout << "v / 2_q_s =\n" << v / 2_q_s << "\n"; // std::cout << "v / 2 =\n" << v / 2 << "\n"; } @@ -234,7 +234,7 @@ void quantity_of_vector_multiply_same() std::cout << "u = " << u << "\n"; std::cout << "v * u = " << v * u << "\n"; - std::cout << "2q_m * v = " << 2.q_m * v << "\n"; + std::cout << "2_q_m * v = " << 2._q_m * v << "\n"; } void quantity_of_vector_multiply_different() @@ -248,7 +248,7 @@ void quantity_of_vector_multiply_different() std::cout << "u = " << u << "\n"; std::cout << "v * u = " << v * u << "\n"; - std::cout << "2q_N * u = " << 2.q_N * u << "\n"; + std::cout << "2_q_N * u = " << 2._q_N * u << "\n"; std::cout << "2 * u = " << 2 * u << "\n"; } @@ -261,7 +261,7 @@ void quantity_of_vector_divide_by_scalar() std::cout << "v = " << v << "\n"; // TODO Uncomment when bug in the LA is fixed - // std::cout << "v / 2q_s = " << v / 2q_s << "\n"; + // std::cout << "v / 2_q_s = " << v / 2_q_s << "\n"; // std::cout << "v / 2 = " << v / 2 << "\n"; } @@ -306,7 +306,7 @@ void quantity_of_matrix_multiply_same() std::cout << "u =\n" << u << "\n"; std::cout << "v * u =\n" << v * u << "\n"; - std::cout << "2q_m * u =\n" << 2.q_m * u << "\n"; + std::cout << "2_q_m * u =\n" << 2._q_m * u << "\n"; } void quantity_of_matrix_multiply_different() @@ -320,7 +320,7 @@ void quantity_of_matrix_multiply_different() std::cout << "u =\n" << u << "\n"; std::cout << "v * u =\n" << v * u << "\n"; - std::cout << "2q_N * u =\n" << 2.q_N * u << "\n"; + std::cout << "2_q_N * u =\n" << 2._q_N * u << "\n"; std::cout << "2 * u =\n" << 2 * u << "\n"; } @@ -333,7 +333,7 @@ void quantity_of_matrix_divide_by_scalar() std::cout << "v =\n" << v << "\n"; // TODO Uncomment when bug in the LA is fixed - // std::cout << "v / 2q_s =\n" << v / 2q_s << "\n"; + // std::cout << "v / 2_q_s =\n" << v / 2_q_s << "\n"; // std::cout << "v / 2 =\n" << v / 2 << "\n"; } diff --git a/example/total_energy.cpp b/example/total_energy.cpp index 3ec087ac..dc91368c 100644 --- a/example/total_energy.cpp +++ b/example/total_energy.cpp @@ -46,8 +46,8 @@ void si_example() std::cout << "\n*** SI units (c = " << c << ") ***\n"; - const Momentum auto p = 4.q_GeV / c; - const Mass auto m = 3.q_GeV / pow<2>(c); + const Momentum auto p = 4._q_GeV / c; + const Mass auto m = 3._q_GeV / pow<2>(c); const Energy auto E = total_energy(p, m, c); std::cout << "[in GeV]\n" diff --git a/example/unknown_dimension.cpp b/example/unknown_dimension.cpp index cf90be90..52d70caa 100644 --- a/example/unknown_dimension.cpp +++ b/example/unknown_dimension.cpp @@ -36,13 +36,13 @@ void example() using namespace units::physical; using namespace units::physical::si::literals; - Length auto d1 = 123q_m; - Time auto t1 = 10q_s; + Length auto d1 = 123_q_m; + Time auto t1 = 10_q_s; Speed auto v1 = avg_speed(d1, t1); - auto temp1 = v1 * 50q_m; // produces intermediate unknown dimension with 'unknown_coherent_unit' as its 'coherent_unit' - Speed auto v2 = temp1 / 100q_m; // back to known dimensions again - Length auto d2 = v2 * 60q_s; + auto temp1 = v1 * 50_q_m; // produces intermediate unknown dimension with 'unknown_coherent_unit' as its 'coherent_unit' + Speed auto v2 = temp1 / 100_q_m; // back to known dimensions again + Length auto d2 = v2 * 60_q_s; std::cout << "d1 = " << d1 << '\n'; std::cout << "t1 = " << t1 << '\n'; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 35ad4f77..62a6ee39 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -71,14 +71,12 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") target_compile_options(mp-units INTERFACE - -Wno-literal-suffix -Wno-non-template-friend ) elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") target_compile_options(mp-units INTERFACE /utf-8 # Specifies both the source character set and the execution character set as UTF-8 - /wd4455 # 'operator name': literal suffix identifiers that do not start with an underscore are reserved ) endif() diff --git a/src/include/units/data/bitrate.h b/src/include/units/data/bitrate.h index 0709cde6..c1f62b54 100644 --- a/src/include/units/data/bitrate.h +++ b/src/include/units/data/bitrate.h @@ -47,12 +47,12 @@ using bitrate = quantity; inline namespace literals { // bits -constexpr auto operator"" q_b_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" q_Kib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" q_Mib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" q_Gib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" q_Tib_per_s(unsigned long long l) { return bitrate(l); } -constexpr auto operator"" q_Pib_per_s(unsigned long long l) { return bitrate(l); } +constexpr auto operator"" _q_b_per_s(unsigned long long l) { return bitrate(l); } +constexpr auto operator"" _q_Kib_per_s(unsigned long long l) { return bitrate(l); } +constexpr auto operator"" _q_Mib_per_s(unsigned long long l) { return bitrate(l); } +constexpr auto operator"" _q_Gib_per_s(unsigned long long l) { return bitrate(l); } +constexpr auto operator"" _q_Tib_per_s(unsigned long long l) { return bitrate(l); } +constexpr auto operator"" _q_Pib_per_s(unsigned long long l) { return bitrate(l); } } // namespace literals diff --git a/src/include/units/data/information.h b/src/include/units/data/information.h index 9995f9c8..89846916 100644 --- a/src/include/units/data/information.h +++ b/src/include/units/data/information.h @@ -54,20 +54,20 @@ using information = quantity; inline namespace literals { // bits -constexpr auto operator"" q_b(unsigned long long l) { return information(l); } -constexpr auto operator"" q_Kib(unsigned long long l) { return information(l); } -constexpr auto operator"" q_Mib(unsigned long long l) { return information(l); } -constexpr auto operator"" q_Gib(unsigned long long l) { return information(l); } -constexpr auto operator"" q_Tib(unsigned long long l) { return information(l); } -constexpr auto operator"" q_Pib(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_b(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_Kib(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_Mib(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_Gib(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_Tib(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_Pib(unsigned long long l) { return information(l); } // bytes -constexpr auto operator"" q_B(unsigned long long l) { return information(l); } -constexpr auto operator"" q_KiB(unsigned long long l) { return information(l); } -constexpr auto operator"" q_MiB(unsigned long long l) { return information(l); } -constexpr auto operator"" q_GiB(unsigned long long l) { return information(l); } -constexpr auto operator"" q_TiB(unsigned long long l) { return information(l); } -constexpr auto operator"" q_PiB(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_B(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_KiB(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_MiB(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_GiB(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_TiB(unsigned long long l) { return information(l); } +constexpr auto operator"" _q_PiB(unsigned long long l) { return information(l); } } // namespace literals diff --git a/src/include/units/format.h b/src/include/units/format.h index f400de6f..bb11c973 100644 --- a/src/include/units/format.h +++ b/src/include/units/format.h @@ -437,7 +437,7 @@ public: fmt::detail::handle_dynamic_spec(rep_specs.precision, precision_ref, ctx); // In `global_format_buffer` we will create a global format string - // e.g. "{:*^10%.1Q_%q}, 1.23q_m" => "{:*^10}" + // e.g. "{:*^10%.1Q_%q}, 1.23_q_m" => "{:*^10}" fmt::basic_memory_buffer global_format_buffer; auto to_gfb = std::back_inserter(global_format_buffer); format_to(to_gfb, "{{:"); @@ -466,7 +466,7 @@ public: // In `quantity_buffer` we will have the representation and the unit formatted according to their // specification, ignoring global specifiers - // e.g. "{:*^10%.1Q_%q}, 1.23q_m" => "1.2_m" + // e.g. "{:*^10%.1Q_%q}, 1.23_q_m" => "1.2_m" // TODO Avoid extra copying if width is not specified fmt::basic_memory_buffer quantity_buffer; auto to_quantity_buffer = std::back_inserter(quantity_buffer); diff --git a/src/include/units/physical/cgs/acceleration.h b/src/include/units/physical/cgs/acceleration.h index 7c066ad3..9674db81 100644 --- a/src/include/units/physical/cgs/acceleration.h +++ b/src/include/units/physical/cgs/acceleration.h @@ -37,8 +37,8 @@ using acceleration = quantity; inline namespace literals { // Gal -constexpr auto operator"" q_Gal(unsigned long long l) { return acceleration(l); } -constexpr auto operator"" q_Gal(long double l) { return acceleration(l); } +constexpr auto operator"" _q_Gal(unsigned long long l) { return acceleration(l); } +constexpr auto operator"" _q_Gal(long double l) { return acceleration(l); } } // namespace literals diff --git a/src/include/units/physical/cgs/area.h b/src/include/units/physical/cgs/area.h index bd4e7f0e..0a031b04 100644 --- a/src/include/units/physical/cgs/area.h +++ b/src/include/units/physical/cgs/area.h @@ -39,8 +39,8 @@ using area = quantity; inline namespace literals { // cm2 -constexpr auto operator"" q_cm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_cm2(long double l) { return area(l); } +constexpr auto operator"" _q_cm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_cm2(long double l) { return area(l); } } diff --git a/src/include/units/physical/cgs/energy.h b/src/include/units/physical/cgs/energy.h index ef881bac..fac6e985 100644 --- a/src/include/units/physical/cgs/energy.h +++ b/src/include/units/physical/cgs/energy.h @@ -39,8 +39,8 @@ using energy = quantity; inline namespace literals { // erg -constexpr auto operator"" q_erg(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_erg(long double l) { return energy(l); } +constexpr auto operator"" _q_erg(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_erg(long double l) { return energy(l); } } // namespace literals diff --git a/src/include/units/physical/cgs/force.h b/src/include/units/physical/cgs/force.h index 9b9b8ead..6add80de 100644 --- a/src/include/units/physical/cgs/force.h +++ b/src/include/units/physical/cgs/force.h @@ -40,8 +40,8 @@ using force = quantity; inline namespace literals { // dyn -constexpr auto operator"" q_dyn(unsigned long long l) { return force(l); } -constexpr auto operator"" q_dyn(long double l) { return force(l); } +constexpr auto operator"" _q_dyn(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_dyn(long double l) { return force(l); } } // namespace literals diff --git a/src/include/units/physical/cgs/length.h b/src/include/units/physical/cgs/length.h index 11092bb7..8417d822 100644 --- a/src/include/units/physical/cgs/length.h +++ b/src/include/units/physical/cgs/length.h @@ -38,8 +38,8 @@ using length = quantity; inline namespace literals { // cm -constexpr auto operator"" q_cm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_cm(long double l) { return length(l); } +constexpr auto operator"" _q_cm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_cm(long double l) { return length(l); } } diff --git a/src/include/units/physical/cgs/mass.h b/src/include/units/physical/cgs/mass.h index 5079dea8..aa63253e 100644 --- a/src/include/units/physical/cgs/mass.h +++ b/src/include/units/physical/cgs/mass.h @@ -38,8 +38,8 @@ using mass = quantity; inline namespace literals { // g -constexpr auto operator"" q_g(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_g(long double l) { return mass(l); } +constexpr auto operator"" _q_g(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_g(long double l) { return mass(l); } } diff --git a/src/include/units/physical/cgs/power.h b/src/include/units/physical/cgs/power.h index a2e1d0e3..2b1b25d7 100644 --- a/src/include/units/physical/cgs/power.h +++ b/src/include/units/physical/cgs/power.h @@ -39,8 +39,8 @@ using power = quantity; inline namespace literals { // ergps -constexpr auto operator"" q_erg_per_s(unsigned long long l) { return power(l); } -constexpr auto operator"" q_erg_per_s(long double l) { return power(l); } +constexpr auto operator"" _q_erg_per_s(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_erg_per_s(long double l) { return power(l); } } // namespace literals diff --git a/src/include/units/physical/cgs/pressure.h b/src/include/units/physical/cgs/pressure.h index cadd94e3..d96dcd99 100644 --- a/src/include/units/physical/cgs/pressure.h +++ b/src/include/units/physical/cgs/pressure.h @@ -40,8 +40,8 @@ using pressure = quantity; inline namespace literals { // Ba -constexpr auto operator"" q_Ba(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_Ba(long double l) { return pressure(l); } +constexpr auto operator"" _q_Ba(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_Ba(long double l) { return pressure(l); } } // namespace literals diff --git a/src/include/units/physical/cgs/speed.h b/src/include/units/physical/cgs/speed.h index f382daa1..799ccf22 100644 --- a/src/include/units/physical/cgs/speed.h +++ b/src/include/units/physical/cgs/speed.h @@ -38,8 +38,8 @@ using speed = quantity; inline namespace literals { // cmps -constexpr auto operator"" q_cm_per_s(unsigned long long l) { return speed(l); } -constexpr auto operator"" q_cm_per_s(long double l) { return speed(l); } +constexpr auto operator"" _q_cm_per_s(unsigned long long l) { return speed(l); } +constexpr auto operator"" _q_cm_per_s(long double l) { return speed(l); } } // namespace literals diff --git a/src/include/units/physical/cgs/time.h b/src/include/units/physical/cgs/time.h index 1b5df90a..842fe340 100644 --- a/src/include/units/physical/cgs/time.h +++ b/src/include/units/physical/cgs/time.h @@ -35,7 +35,7 @@ using si::time; inline namespace literals { -using si::literals::operator"" q_s; +using si::literals::operator"" _q_s; } diff --git a/src/include/units/physical/fps/acceleration.h b/src/include/units/physical/fps/acceleration.h index 6917dcdd..daefef02 100644 --- a/src/include/units/physical/fps/acceleration.h +++ b/src/include/units/physical/fps/acceleration.h @@ -37,8 +37,8 @@ using acceleration = quantity; inline namespace literals { // ft_per_s2 -constexpr auto operator"" q_ft_per_s2(unsigned long long l) { return acceleration(l); } -constexpr auto operator"" q_ft_per_s2(long double l) { return acceleration(l); } +constexpr auto operator"" _q_ft_per_s2(unsigned long long l) { return acceleration(l); } +constexpr auto operator"" _q_ft_per_s2(long double l) { return acceleration(l); } } // namespace literals diff --git a/src/include/units/physical/fps/area.h b/src/include/units/physical/fps/area.h index 107f053d..e886c742 100644 --- a/src/include/units/physical/fps/area.h +++ b/src/include/units/physical/fps/area.h @@ -39,8 +39,8 @@ using area = quantity; inline namespace literals { // ft2 -constexpr auto operator"" q_ft2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_ft2(long double l) { return area(l); } +constexpr auto operator"" _q_ft2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_ft2(long double l) { return area(l); } } diff --git a/src/include/units/physical/fps/density.h b/src/include/units/physical/fps/density.h index 118c05b5..bee81a0e 100644 --- a/src/include/units/physical/fps/density.h +++ b/src/include/units/physical/fps/density.h @@ -38,8 +38,8 @@ using density = quantity; inline namespace literals { -constexpr auto operator"" q_lb_per_ft3(unsigned long long l) { return density(l); } -constexpr auto operator"" q_lb_per_ft3(long double l) { return density(l); } +constexpr auto operator"" _q_lb_per_ft3(unsigned long long l) { return density(l); } +constexpr auto operator"" _q_lb_per_ft3(long double l) { return density(l); } } // namespace literals diff --git a/src/include/units/physical/fps/energy.h b/src/include/units/physical/fps/energy.h index 2d7f89d8..9b5189a4 100644 --- a/src/include/units/physical/fps/energy.h +++ b/src/include/units/physical/fps/energy.h @@ -45,12 +45,12 @@ using energy = quantity; inline namespace literals { -constexpr auto operator"" q_ft_pdl(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_ft_pdl(long double l) { return energy(l); } +constexpr auto operator"" _q_ft_pdl(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_ft_pdl(long double l) { return energy(l); } // foot_pound force -constexpr auto operator"" q_ft_lbf(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_ft_lbf(long double l) { return energy(l); } +constexpr auto operator"" _q_ft_lbf(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_ft_lbf(long double l) { return energy(l); } } // namespace literals diff --git a/src/include/units/physical/fps/force.h b/src/include/units/physical/fps/force.h index ad6b32c3..30d9a754 100644 --- a/src/include/units/physical/fps/force.h +++ b/src/include/units/physical/fps/force.h @@ -49,16 +49,16 @@ using force = quantity; inline namespace literals { // poundal -constexpr auto operator"" q_pdl(unsigned long long l) { return force(l); } -constexpr auto operator"" q_pdl(long double l) { return force(l); } +constexpr auto operator"" _q_pdl(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_pdl(long double l) { return force(l); } // pound force -constexpr auto operator"" q_lbf(unsigned long long l) { return force(l); } -constexpr auto operator"" q_lbf(long double l) { return force(l); } +constexpr auto operator"" _q_lbf(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_lbf(long double l) { return force(l); } // kilopound force -constexpr auto operator"" q_klbf(unsigned long long l) { return force(l); } -constexpr auto operator"" q_klbf(long double l) { return force(l); } +constexpr auto operator"" _q_klbf(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_klbf(long double l) { return force(l); } } // namespace literals diff --git a/src/include/units/physical/fps/length.h b/src/include/units/physical/fps/length.h index 31f46020..4952e868 100644 --- a/src/include/units/physical/fps/length.h +++ b/src/include/units/physical/fps/length.h @@ -58,39 +58,39 @@ using length = quantity; inline namespace literals { // Thousandth -constexpr auto operator"" q_thou(unsigned long long l) { return length(l); } -constexpr auto operator"" q_thou(long double l) { return length(l); } -constexpr auto operator"" q_mil(unsigned long long l) { return length(l); } -constexpr auto operator"" q_mil(long double l) { return length(l); } +constexpr auto operator"" _q_thou(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_thou(long double l) { return length(l); } +constexpr auto operator"" _q_mil(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_mil(long double l) { return length(l); } // Inch -constexpr auto operator"" q_in(unsigned long long l) { return length(l); } -constexpr auto operator"" q_in(long double l) { return length(l); } +constexpr auto operator"" _q_in(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_in(long double l) { return length(l); } // Foot -constexpr auto operator"" q_ft(unsigned long long l) { return length(l); } -constexpr auto operator"" q_ft(long double l) { return length(l); } +constexpr auto operator"" _q_ft(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_ft(long double l) { return length(l); } // Yard -constexpr auto operator"" q_yd(unsigned long long l) { return length(l); } -constexpr auto operator"" q_yd(long double l) { return length(l); } +constexpr auto operator"" _q_yd(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_yd(long double l) { return length(l); } // Fathom -constexpr auto operator"" q_ftm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_ftm(long double l) { return length(l); } +constexpr auto operator"" _q_ftm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_ftm(long double l) { return length(l); } // Kiloyard -constexpr auto operator"" q_kyd(unsigned long long l) { return length(l); } -constexpr auto operator"" q_kyd(long double l) { return length(l); } +constexpr auto operator"" _q_kyd(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_kyd(long double l) { return length(l); } // Mile -constexpr auto operator"" q_mile(unsigned long long l) { return length(l); } -constexpr auto operator"" q_mile(long double l) { return length(l); } +constexpr auto operator"" _q_mile(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_mile(long double l) { return length(l); } // Nautical mile -constexpr auto operator"" q_naut_mi(unsigned long long l) { return length(l); } -constexpr auto operator"" q_naut_mi(long double l) { return length(l); } +constexpr auto operator"" _q_naut_mi(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_naut_mi(long double l) { return length(l); } } diff --git a/src/include/units/physical/fps/mass.h b/src/include/units/physical/fps/mass.h index 3802035f..614d73c3 100644 --- a/src/include/units/physical/fps/mass.h +++ b/src/include/units/physical/fps/mass.h @@ -55,40 +55,40 @@ struct long_ton : named_scaled_unit(l); } -constexpr auto operator"" q_gr(long double l) { return mass(l); } +constexpr auto operator"" _q_gr(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_gr(long double l) { return mass(l); } // Dram -constexpr auto operator"" q_dr(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_dr(long double l) { return mass(l); } +constexpr auto operator"" _q_dr(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_dr(long double l) { return mass(l); } // Ounce -constexpr auto operator"" q_oz(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_oz(long double l) { return mass(l); } +constexpr auto operator"" _q_oz(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_oz(long double l) { return mass(l); } // Pound -constexpr auto operator"" q_lb(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_lb(long double l) { return mass(l); } +constexpr auto operator"" _q_lb(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_lb(long double l) { return mass(l); } // Stone -constexpr auto operator"" q_st(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_st(long double l) { return mass(l); } +constexpr auto operator"" _q_st(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_st(long double l) { return mass(l); } // Quarter -constexpr auto operator"" q_qr(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_qr(long double l) { return mass(l); } +constexpr auto operator"" _q_qr(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_qr(long double l) { return mass(l); } // Hundredweight -constexpr auto operator"" q_cwt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_cwt(long double l) { return mass(l); } +constexpr auto operator"" _q_cwt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_cwt(long double l) { return mass(l); } // Short ton -constexpr auto operator"" q_ston(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ston(long double l) { return mass(l); } +constexpr auto operator"" _q_ston(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ston(long double l) { return mass(l); } // Long Ton -constexpr auto operator"" q_lton(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_lton(long double l) { return mass(l); } +constexpr auto operator"" _q_lton(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_lton(long double l) { return mass(l); } } diff --git a/src/include/units/physical/fps/power.h b/src/include/units/physical/fps/power.h index 6a6a320f..dcaf1be3 100644 --- a/src/include/units/physical/fps/power.h +++ b/src/include/units/physical/fps/power.h @@ -43,17 +43,17 @@ using power = quantity; inline namespace literals { // foot pound force per second -constexpr auto operator"" q_ft_pdl_per_s(unsigned long long l) { return power(l); } -constexpr auto operator"" q_ft_pdl_per_s(long double l) { return power(l); } +constexpr auto operator"" _q_ft_pdl_per_s(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_ft_pdl_per_s(long double l) { return power(l); } // foot pound force per second -constexpr auto operator"" q_ft_lbf_per_s(unsigned long long l) { return power(l); } -constexpr auto operator"" q_ft_lbf_per_s(long double l) { return power(l); } +constexpr auto operator"" _q_ft_lbf_per_s(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_ft_lbf_per_s(long double l) { return power(l); } -constexpr auto operator"" q_hp(unsigned long long l) { return power(l); } -constexpr auto operator"" q_hp(long double l) { return power(l); } +constexpr auto operator"" _q_hp(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_hp(long double l) { return power(l); } } // namespace literals diff --git a/src/include/units/physical/fps/pressure.h b/src/include/units/physical/fps/pressure.h index a9760bc9..bb710921 100644 --- a/src/include/units/physical/fps/pressure.h +++ b/src/include/units/physical/fps/pressure.h @@ -45,16 +45,16 @@ struct kilopound_force_per_inch_sq : prefixed_unit(l); } -constexpr auto operator"" q_pdl_per_ft2(long double l) { return pressure(l); } +constexpr auto operator"" _q_pdl_per_ft2(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_pdl_per_ft2(long double l) { return pressure(l); } // Pounds per square inch -constexpr auto operator"" q_psi(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_psi(long double l) { return pressure(l); } +constexpr auto operator"" _q_psi(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_psi(long double l) { return pressure(l); } // kilopounds per square inch -constexpr auto operator"" q_kpsi(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_kpsi(long double l) { return pressure(l); } +constexpr auto operator"" _q_kpsi(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_kpsi(long double l) { return pressure(l); } } // namespace literals diff --git a/src/include/units/physical/fps/speed.h b/src/include/units/physical/fps/speed.h index 8de37c0a..562afb8e 100644 --- a/src/include/units/physical/fps/speed.h +++ b/src/include/units/physical/fps/speed.h @@ -44,14 +44,14 @@ struct knot : alias_unit {}; inline namespace literals { -constexpr auto operator"" q_ft_per_s(unsigned long long l) { return speed(l); } -constexpr auto operator"" q_ft_per_s(long double l) { return speed(l); } +constexpr auto operator"" _q_ft_per_s(unsigned long long l) { return speed(l); } +constexpr auto operator"" _q_ft_per_s(long double l) { return speed(l); } -constexpr auto operator"" q_mph(unsigned long long l) { return speed(l); } -constexpr auto operator"" q_mph(long double l) { return speed(l); } +constexpr auto operator"" _q_mph(unsigned long long l) { return speed(l); } +constexpr auto operator"" _q_mph(long double l) { return speed(l); } -constexpr auto operator"" q_knot(unsigned long long l) { return speed(l); } -constexpr auto operator"" q_knot(long double l) { return speed(l); } +constexpr auto operator"" _q_knot(unsigned long long l) { return speed(l); } +constexpr auto operator"" _q_knot(long double l) { return speed(l); } } // namespace literals diff --git a/src/include/units/physical/fps/time.h b/src/include/units/physical/fps/time.h index 4862c736..fa622e0e 100644 --- a/src/include/units/physical/fps/time.h +++ b/src/include/units/physical/fps/time.h @@ -37,7 +37,7 @@ using si::time; inline namespace literals { -using si::literals::operator"" q_s; +using si::literals::operator"" _q_s; } diff --git a/src/include/units/physical/fps/volume.h b/src/include/units/physical/fps/volume.h index 57e49c1a..4c6f4e42 100644 --- a/src/include/units/physical/fps/volume.h +++ b/src/include/units/physical/fps/volume.h @@ -39,12 +39,12 @@ using volume = quantity; inline namespace literals { // ft3 -constexpr auto operator"" q_ft3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_ft3(long double l) { return volume(l); } +constexpr auto operator"" _q_ft3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_ft3(long double l) { return volume(l); } // yard3 -constexpr auto operator"" q_yd3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_yd3(long double l) { return volume(l); } +constexpr auto operator"" _q_yd3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_yd3(long double l) { return volume(l); } } // namespace literals diff --git a/src/include/units/physical/iau/length.h b/src/include/units/physical/iau/length.h index 0786dcbc..a7284e38 100644 --- a/src/include/units/physical/iau/length.h +++ b/src/include/units/physical/iau/length.h @@ -38,14 +38,14 @@ struct angstrom : named_scaled_unit(l); } -constexpr auto operator"" q_ly(long double l) { return si::length(l); } +constexpr auto operator"" _q_ly(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_ly(long double l) { return si::length(l); } -constexpr auto operator"" q_pc(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_pc(long double l) { return si::length(l); } +constexpr auto operator"" _q_pc(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_pc(long double l) { return si::length(l); } -constexpr auto operator"" q_angstrom(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_angstrom(long double l) { return si::length(l); } +constexpr auto operator"" _q_angstrom(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_angstrom(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/imperial/length.h b/src/include/units/physical/imperial/length.h index cbe856a9..1c1273a0 100644 --- a/src/include/units/physical/imperial/length.h +++ b/src/include/units/physical/imperial/length.h @@ -34,11 +34,11 @@ struct rod : named_scaled_unit {}; inline namespace literals { -constexpr auto operator"" q_ch(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_ch(long double l) { return si::length(l); } +constexpr auto operator"" _q_ch(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_ch(long double l) { return si::length(l); } -constexpr auto operator"" q_rd(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_rd(long double l) { return si::length(l); } +constexpr auto operator"" _q_rd(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_rd(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/international/area.h b/src/include/units/physical/international/area.h index 65686c3d..7fa51c42 100644 --- a/src/include/units/physical/international/area.h +++ b/src/include/units/physical/international/area.h @@ -32,8 +32,8 @@ struct square_foot : deduced_unit(l); } -constexpr auto operator"" q_ft2(long double l) { return si::area(l); } +constexpr auto operator"" _q_ft2(unsigned long long l) { return si::area(l); } +constexpr auto operator"" _q_ft2(long double l) { return si::area(l); } } // namespace literals diff --git a/src/include/units/physical/international/length.h b/src/include/units/physical/international/length.h index 74a0f223..2e7d3a41 100644 --- a/src/include/units/physical/international/length.h +++ b/src/include/units/physical/international/length.h @@ -61,36 +61,36 @@ using mil = thou; inline namespace literals { // yd -constexpr auto operator"" q_yd(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_yd(long double l) { return si::length(l); } +constexpr auto operator"" _q_yd(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_yd(long double l) { return si::length(l); } // ft -constexpr auto operator"" q_ft(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_ft(long double l) { return si::length(l); } +constexpr auto operator"" _q_ft(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_ft(long double l) { return si::length(l); } // fathom -constexpr auto operator"" q_fathom(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_fathom(long double l) { return si::length(l); } +constexpr auto operator"" _q_fathom(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_fathom(long double l) { return si::length(l); } // in -constexpr auto operator"" q_in(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_in(long double l) { return si::length(l); } +constexpr auto operator"" _q_in(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_in(long double l) { return si::length(l); } // mi -constexpr auto operator"" q_mi(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_mi(long double l) { return si::length(l); } +constexpr auto operator"" _q_mi(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_mi(long double l) { return si::length(l); } // mi_naut -constexpr auto operator"" q_naut_mi(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_naut_mi(long double l) { return si::length(l); } +constexpr auto operator"" _q_naut_mi(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_naut_mi(long double l) { return si::length(l); } // thou -constexpr auto operator"" q_thou(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_thou(long double l) { return si::length(l); } +constexpr auto operator"" _q_thou(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_thou(long double l) { return si::length(l); } // mil -constexpr auto operator"" q_mil(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_mil(long double l) { return si::length(l); } +constexpr auto operator"" _q_mil(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_mil(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/international/speed.h b/src/include/units/physical/international/speed.h index 89c09c56..602c387a 100644 --- a/src/include/units/physical/international/speed.h +++ b/src/include/units/physical/international/speed.h @@ -32,8 +32,8 @@ struct mile_per_hour : deduced_unit(l); } -constexpr auto operator"" q_mi_per_h(long double l) { return si::speed(l); } +constexpr auto operator"" _q_mi_per_h(unsigned long long l) { return si::speed(l); } +constexpr auto operator"" _q_mi_per_h(long double l) { return si::speed(l); } } // namespace literals diff --git a/src/include/units/physical/international/volume.h b/src/include/units/physical/international/volume.h index 82f753d6..a4dfe817 100644 --- a/src/include/units/physical/international/volume.h +++ b/src/include/units/physical/international/volume.h @@ -32,8 +32,8 @@ struct cubic_foot : deduced_unit(l); } -constexpr auto operator"" q_ft3(long double l) { return si::volume(l); } +constexpr auto operator"" _q_ft3(unsigned long long l) { return si::volume(l); } +constexpr auto operator"" _q_ft3(long double l) { return si::volume(l); } } // namespace literals diff --git a/src/include/units/physical/natural/dimensions.h b/src/include/units/physical/natural/dimensions.h index d4291bda..3241ee4e 100644 --- a/src/include/units/physical/natural/dimensions.h +++ b/src/include/units/physical/natural/dimensions.h @@ -61,6 +61,6 @@ template using energy = quantity; // Typical UDLs will not work here as the same units are reused by many quantities. -// Should we define some strange ones (i.e. q_mass_GeV)? +// Should we define some strange ones (i.e. _q_mass_GeV)? } // namespace units::physical::natural diff --git a/src/include/units/physical/si/absorbed_dose.h b/src/include/units/physical/si/absorbed_dose.h index 9c2e88c5..fa653710 100644 --- a/src/include/units/physical/si/absorbed_dose.h +++ b/src/include/units/physical/si/absorbed_dose.h @@ -60,88 +60,88 @@ using absorbed_dose = quantity; inline namespace literals { // G -constexpr auto operator"" q_Gy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_Gy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_Gy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_Gy(long double l) { return absorbed_dose(l); } // yGy -constexpr auto operator"" q_yGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_yGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_yGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_yGy(long double l) { return absorbed_dose(l); } // zGy -constexpr auto operator"" q_zGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_zGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_zGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_zGy(long double l) { return absorbed_dose(l); } // aGy -constexpr auto operator"" q_aGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_aGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_aGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_aGy(long double l) { return absorbed_dose(l); } // fGy -constexpr auto operator"" q_fGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_fGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_fGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_fGy(long double l) { return absorbed_dose(l); } // pGy -constexpr auto operator"" q_pGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_pGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_pGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_pGy(long double l) { return absorbed_dose(l); } // nGy -constexpr auto operator"" q_nGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_nGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_nGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_nGy(long double l) { return absorbed_dose(l); } // uGy -constexpr auto operator"" q_uGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_uGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_uGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_uGy(long double l) { return absorbed_dose(l); } // mGy -constexpr auto operator"" q_mGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_mGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_mGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_mGy(long double l) { return absorbed_dose(l); } // cGy -constexpr auto operator"" q_cGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_cGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_cGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_cGy(long double l) { return absorbed_dose(l); } // dGy -constexpr auto operator"" q_dGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_dGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_dGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_dGy(long double l) { return absorbed_dose(l); } // daGy -constexpr auto operator"" q_daGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_daGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_daGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_daGy(long double l) { return absorbed_dose(l); } // hGy -constexpr auto operator"" q_hGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_hGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_hGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_hGy(long double l) { return absorbed_dose(l); } // kGy -constexpr auto operator"" q_kGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_kGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_kGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_kGy(long double l) { return absorbed_dose(l); } // MGy -constexpr auto operator"" q_MGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_MGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_MGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_MGy(long double l) { return absorbed_dose(l); } // GGy -constexpr auto operator"" q_GGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_GGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_GGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_GGy(long double l) { return absorbed_dose(l); } // TGy -constexpr auto operator"" q_TGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_TGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_TGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_TGy(long double l) { return absorbed_dose(l); } // PGy -constexpr auto operator"" q_PGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_PGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_PGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_PGy(long double l) { return absorbed_dose(l); } // EGy -constexpr auto operator"" q_EGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_EGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_EGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_EGy(long double l) { return absorbed_dose(l); } // ZGy -constexpr auto operator"" q_ZGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_ZGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_ZGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_ZGy(long double l) { return absorbed_dose(l); } // YGy -constexpr auto operator"" q_YGy(unsigned long long l) { return absorbed_dose(l); } -constexpr auto operator"" q_YGy(long double l) { return absorbed_dose(l); } +constexpr auto operator"" _q_YGy(unsigned long long l) { return absorbed_dose(l); } +constexpr auto operator"" _q_YGy(long double l) { return absorbed_dose(l); } } // namespace literals diff --git a/src/include/units/physical/si/acceleration.h b/src/include/units/physical/si/acceleration.h index ca049a35..0d96c4a6 100644 --- a/src/include/units/physical/si/acceleration.h +++ b/src/include/units/physical/si/acceleration.h @@ -37,8 +37,8 @@ using acceleration = quantity; inline namespace literals { // mps2 -constexpr auto operator"" q_m_per_s2(unsigned long long l) { return acceleration(l); } -constexpr auto operator"" q_m_per_s2(long double l) { return acceleration(l); } +constexpr auto operator"" _q_m_per_s2(unsigned long long l) { return acceleration(l); } +constexpr auto operator"" _q_m_per_s2(long double l) { return acceleration(l); } } // namespace literals diff --git a/src/include/units/physical/si/angle.h b/src/include/units/physical/si/angle.h index b2114cfb..a86c18be 100644 --- a/src/include/units/physical/si/angle.h +++ b/src/include/units/physical/si/angle.h @@ -38,8 +38,8 @@ using angle = quantity; inline namespace literals { // rad -constexpr auto operator"" q_rad(unsigned long long l) { return angle(l); } -constexpr auto operator"" q_rad(long double l) { return angle(l); } +constexpr auto operator"" _q_rad(unsigned long long l) { return angle(l); } +constexpr auto operator"" _q_rad(long double l) { return angle(l); } } // namespace literals diff --git a/src/include/units/physical/si/angular_velocity.h b/src/include/units/physical/si/angular_velocity.h index 924027dc..4b48fb70 100644 --- a/src/include/units/physical/si/angular_velocity.h +++ b/src/include/units/physical/si/angular_velocity.h @@ -40,8 +40,8 @@ using angular_velocity = quantity; inline namespace literals { // rad / s -constexpr auto operator"" q_rad_per_s(unsigned long long l) { return angular_velocity(l); } -constexpr auto operator"" q_rad_per_s(long double l) { return angular_velocity(l); } +constexpr auto operator"" _q_rad_per_s(unsigned long long l) { return angular_velocity(l); } +constexpr auto operator"" _q_rad_per_s(long double l) { return angular_velocity(l); } } // namespace literals diff --git a/src/include/units/physical/si/area.h b/src/include/units/physical/si/area.h index 5b11d402..d66a0d36 100644 --- a/src/include/units/physical/si/area.h +++ b/src/include/units/physical/si/area.h @@ -60,92 +60,92 @@ using area = quantity; inline namespace literals { // m2 -constexpr auto operator"" q_m2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_m2(long double l) { return area(l); } +constexpr auto operator"" _q_m2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_m2(long double l) { return area(l); } // ym2 -constexpr auto operator"" q_ym2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_ym2(long double l) { return area(l); } +constexpr auto operator"" _q_ym2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_ym2(long double l) { return area(l); } // zm2 -constexpr auto operator"" q_zm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_zm2(long double l) { return area(l); } +constexpr auto operator"" _q_zm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_zm2(long double l) { return area(l); } // am2 -constexpr auto operator"" q_am2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_am2(long double l) { return area(l); } +constexpr auto operator"" _q_am2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_am2(long double l) { return area(l); } // fm2 -constexpr auto operator"" q_fm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_fm2(long double l) { return area(l); } +constexpr auto operator"" _q_fm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_fm2(long double l) { return area(l); } // pm2 -constexpr auto operator"" q_pm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_pm2(long double l) { return area(l); } +constexpr auto operator"" _q_pm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_pm2(long double l) { return area(l); } // nm2 -constexpr auto operator"" q_nm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_nm2(long double l) { return area(l); } +constexpr auto operator"" _q_nm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_nm2(long double l) { return area(l); } // um2 -constexpr auto operator"" q_um2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_um2(long double l) { return area(l); } +constexpr auto operator"" _q_um2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_um2(long double l) { return area(l); } // mm2 -constexpr auto operator"" q_mm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_mm2(long double l) { return area(l); } +constexpr auto operator"" _q_mm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_mm2(long double l) { return area(l); } // cm2 -constexpr auto operator"" q_cm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_cm2(long double l) { return area(l); } +constexpr auto operator"" _q_cm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_cm2(long double l) { return area(l); } // dm2 -constexpr auto operator"" q_dm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_dm2(long double l) { return area(l); } +constexpr auto operator"" _q_dm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_dm2(long double l) { return area(l); } // dam2 -constexpr auto operator"" q_dam2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_dam2(long double l) { return area(l); } +constexpr auto operator"" _q_dam2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_dam2(long double l) { return area(l); } // hm2 -constexpr auto operator"" q_hm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_hm2(long double l) { return area(l); } +constexpr auto operator"" _q_hm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_hm2(long double l) { return area(l); } // km2 -constexpr auto operator"" q_km2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_km2(long double l) { return area(l); } +constexpr auto operator"" _q_km2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_km2(long double l) { return area(l); } // Mm2 -constexpr auto operator"" q_Mm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_Mm2(long double l) { return area(l); } +constexpr auto operator"" _q_Mm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_Mm2(long double l) { return area(l); } // Gm2 -constexpr auto operator"" q_Gm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_Gm2(long double l) { return area(l); } +constexpr auto operator"" _q_Gm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_Gm2(long double l) { return area(l); } // Tm2 -constexpr auto operator"" q_Tm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_Tm2(long double l) { return area(l); } +constexpr auto operator"" _q_Tm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_Tm2(long double l) { return area(l); } // Pm2 -constexpr auto operator"" q_Pm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_Pm2(long double l) { return area(l); } +constexpr auto operator"" _q_Pm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_Pm2(long double l) { return area(l); } // Em2 -constexpr auto operator"" q_Em2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_Em2(long double l) { return area(l); } +constexpr auto operator"" _q_Em2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_Em2(long double l) { return area(l); } // Zm2 -constexpr auto operator"" q_Zm2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_Zm2(long double l) { return area(l); } +constexpr auto operator"" _q_Zm2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_Zm2(long double l) { return area(l); } // Ym2 -constexpr auto operator"" q_Ym2(unsigned long long l) { return area(l); } -constexpr auto operator"" q_Ym2(long double l) { return area(l); } +constexpr auto operator"" _q_Ym2(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_Ym2(long double l) { return area(l); } // ha -constexpr auto operator"" q_ha(unsigned long long l) { return area(l); } -constexpr auto operator"" q_ha(long double l) { return area(l); } +constexpr auto operator"" _q_ha(unsigned long long l) { return area(l); } +constexpr auto operator"" _q_ha(long double l) { return area(l); } } // namespace literals diff --git a/src/include/units/physical/si/capacitance.h b/src/include/units/physical/si/capacitance.h index 3287b5fc..4ee8437d 100644 --- a/src/include/units/physical/si/capacitance.h +++ b/src/include/units/physical/si/capacitance.h @@ -60,88 +60,88 @@ using capacitance = quantity; inline namespace literals { // F -constexpr auto operator"" q_F(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_F(long double l) { return capacitance(l); } +constexpr auto operator"" _q_F(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_F(long double l) { return capacitance(l); } // yF -constexpr auto operator"" q_yF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_yF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_yF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_yF(long double l) { return capacitance(l); } // zF -constexpr auto operator"" q_zF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_zF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_zF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_zF(long double l) { return capacitance(l); } // aF -constexpr auto operator"" q_aF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_aF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_aF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_aF(long double l) { return capacitance(l); } // fF -constexpr auto operator"" q_fF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_fF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_fF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_fF(long double l) { return capacitance(l); } // pF -constexpr auto operator"" q_pF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_pF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_pF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_pF(long double l) { return capacitance(l); } // nF -constexpr auto operator"" q_nF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_nF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_nF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_nF(long double l) { return capacitance(l); } // uF -constexpr auto operator"" q_uF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_uF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_uF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_uF(long double l) { return capacitance(l); } // mF -constexpr auto operator"" q_mF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_mF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_mF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_mF(long double l) { return capacitance(l); } // cF -constexpr auto operator"" q_cF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_cF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_cF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_cF(long double l) { return capacitance(l); } // dF -constexpr auto operator"" q_dF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_dF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_dF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_dF(long double l) { return capacitance(l); } // daF -constexpr auto operator"" q_daF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_daF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_daF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_daF(long double l) { return capacitance(l); } // hF -constexpr auto operator"" q_hF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_hF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_hF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_hF(long double l) { return capacitance(l); } // kF -constexpr auto operator"" q_kF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_kF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_kF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_kF(long double l) { return capacitance(l); } // MF -constexpr auto operator"" q_MF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_MF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_MF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_MF(long double l) { return capacitance(l); } // GF -constexpr auto operator"" q_GF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_GF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_GF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_GF(long double l) { return capacitance(l); } // TF -constexpr auto operator"" q_TF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_TF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_TF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_TF(long double l) { return capacitance(l); } // PF -constexpr auto operator"" q_PF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_PF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_PF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_PF(long double l) { return capacitance(l); } // EF -constexpr auto operator"" q_EF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_EF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_EF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_EF(long double l) { return capacitance(l); } // ZF -constexpr auto operator"" q_ZF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_ZF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_ZF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_ZF(long double l) { return capacitance(l); } // YF -constexpr auto operator"" q_YF(unsigned long long l) { return capacitance(l); } -constexpr auto operator"" q_YF(long double l) { return capacitance(l); } +constexpr auto operator"" _q_YF(unsigned long long l) { return capacitance(l); } +constexpr auto operator"" _q_YF(long double l) { return capacitance(l); } } // namespace literals diff --git a/src/include/units/physical/si/catalytic_activity.h b/src/include/units/physical/si/catalytic_activity.h index a67e9a64..114712b8 100644 --- a/src/include/units/physical/si/catalytic_activity.h +++ b/src/include/units/physical/si/catalytic_activity.h @@ -62,92 +62,92 @@ using catalytic_activity = quantity; inline namespace literals { // kat -constexpr auto operator"" q_kat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_kat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_kat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_kat(long double l) { return catalytic_activity(l); } // ykat -constexpr auto operator"" q_ykat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_ykat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_ykat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_ykat(long double l) { return catalytic_activity(l); } // zkat -constexpr auto operator"" q_zkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_zkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_zkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_zkat(long double l) { return catalytic_activity(l); } // akat -constexpr auto operator"" q_akat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_akat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_akat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_akat(long double l) { return catalytic_activity(l); } // fkat -constexpr auto operator"" q_fkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_fkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_fkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_fkat(long double l) { return catalytic_activity(l); } // pkat -constexpr auto operator"" q_pkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_pkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_pkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_pkat(long double l) { return catalytic_activity(l); } // nkat -constexpr auto operator"" q_nkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_nkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_nkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_nkat(long double l) { return catalytic_activity(l); } // ukat -constexpr auto operator"" q_ukat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_ukat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_ukat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_ukat(long double l) { return catalytic_activity(l); } // mkat -constexpr auto operator"" q_mkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_mkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_mkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_mkat(long double l) { return catalytic_activity(l); } // ckat -constexpr auto operator"" q_ckat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_ckat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_ckat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_ckat(long double l) { return catalytic_activity(l); } // dkat -constexpr auto operator"" q_dkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_dkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_dkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_dkat(long double l) { return catalytic_activity(l); } // dakat -constexpr auto operator"" q_dakat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_dakat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_dakat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_dakat(long double l) { return catalytic_activity(l); } // hkat -constexpr auto operator"" q_hkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_hkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_hkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_hkat(long double l) { return catalytic_activity(l); } // kkat -constexpr auto operator"" q_kkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_kkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_kkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_kkat(long double l) { return catalytic_activity(l); } // Mkat -constexpr auto operator"" q_Mkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_Mkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Mkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Mkat(long double l) { return catalytic_activity(l); } // Gkat -constexpr auto operator"" q_Gkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_Gkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Gkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Gkat(long double l) { return catalytic_activity(l); } // Tkat -constexpr auto operator"" q_Tkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_Tkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Tkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Tkat(long double l) { return catalytic_activity(l); } // Pkat -constexpr auto operator"" q_Pkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_Pkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Pkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Pkat(long double l) { return catalytic_activity(l); } // Ekat -constexpr auto operator"" q_Ekat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_Ekat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Ekat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Ekat(long double l) { return catalytic_activity(l); } // Zkat -constexpr auto operator"" q_Zkat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_Zkat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Zkat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Zkat(long double l) { return catalytic_activity(l); } // Ykat -constexpr auto operator"" q_Ykat(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_Ykat(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Ykat(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_Ykat(long double l) { return catalytic_activity(l); } // U -constexpr auto operator"" q_U(unsigned long long l) { return catalytic_activity(l); } -constexpr auto operator"" q_U(long double l) { return catalytic_activity(l); } +constexpr auto operator"" _q_U(unsigned long long l) { return catalytic_activity(l); } +constexpr auto operator"" _q_U(long double l) { return catalytic_activity(l); } } // namespace literals diff --git a/src/include/units/physical/si/charge_density.h b/src/include/units/physical/si/charge_density.h index 0ccad25a..d63633d9 100644 --- a/src/include/units/physical/si/charge_density.h +++ b/src/include/units/physical/si/charge_density.h @@ -45,12 +45,12 @@ using surface_charge_density = quantity; inline namespace literals { // C/m³ -constexpr auto operator"" q_C_per_m3(unsigned long long l) { return charge_density(l); } -constexpr auto operator"" q_C_per_m3(long double l) { return charge_density(l); } +constexpr auto operator"" _q_C_per_m3(unsigned long long l) { return charge_density(l); } +constexpr auto operator"" _q_C_per_m3(long double l) { return charge_density(l); } // C/m² -constexpr auto operator"" q_C_per_m2(unsigned long long l) { return surface_charge_density(l); } -constexpr auto operator"" q_C_per_m2(long double l) { return surface_charge_density(l); } +constexpr auto operator"" _q_C_per_m2(unsigned long long l) { return surface_charge_density(l); } +constexpr auto operator"" _q_C_per_m2(long double l) { return surface_charge_density(l); } } // namespace literals diff --git a/src/include/units/physical/si/concentration.h b/src/include/units/physical/si/concentration.h index 8e85b20c..a2d5c0b0 100644 --- a/src/include/units/physical/si/concentration.h +++ b/src/include/units/physical/si/concentration.h @@ -38,8 +38,8 @@ using concentration = quantity; inline namespace literals { // mol/m³ -constexpr auto operator"" q_mol_per_m3(unsigned long long l) { return concentration(l); } -constexpr auto operator"" q_mol_per_m3(long double l) { return concentration(l); } +constexpr auto operator"" _q_mol_per_m3(unsigned long long l) { return concentration(l); } +constexpr auto operator"" _q_mol_per_m3(long double l) { return concentration(l); } } // namespace literals diff --git a/src/include/units/physical/si/conductance.h b/src/include/units/physical/si/conductance.h index b793d54e..49206d0d 100644 --- a/src/include/units/physical/si/conductance.h +++ b/src/include/units/physical/si/conductance.h @@ -55,72 +55,72 @@ using conductance = quantity; inline namespace literals { // R -constexpr auto operator"" q_S(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_S(long double l) { return conductance(l); } +constexpr auto operator"" _q_S(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_S(long double l) { return conductance(l); } // yS -constexpr auto operator"" q_yS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_yS(long double l) { return conductance(l); } +constexpr auto operator"" _q_yS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_yS(long double l) { return conductance(l); } // zS -constexpr auto operator"" q_zS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_zS(long double l) { return conductance(l); } +constexpr auto operator"" _q_zS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_zS(long double l) { return conductance(l); } // aS -constexpr auto operator"" q_aS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_aS(long double l) { return conductance(l); } +constexpr auto operator"" _q_aS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_aS(long double l) { return conductance(l); } // fS -constexpr auto operator"" q_fS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_fS(long double l) { return conductance(l); } +constexpr auto operator"" _q_fS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_fS(long double l) { return conductance(l); } // pS -constexpr auto operator"" q_pS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_pS(long double l) { return conductance(l); } +constexpr auto operator"" _q_pS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_pS(long double l) { return conductance(l); } // nS -constexpr auto operator"" q_nS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_nS(long double l) { return conductance(l); } +constexpr auto operator"" _q_nS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_nS(long double l) { return conductance(l); } // µS -constexpr auto operator"" q_uS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_uS(long double l) { return conductance(l); } +constexpr auto operator"" _q_uS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_uS(long double l) { return conductance(l); } // mS -constexpr auto operator"" q_mS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_mS(long double l) { return conductance(l); } +constexpr auto operator"" _q_mS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_mS(long double l) { return conductance(l); } // kS -constexpr auto operator"" q_kS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_kS(long double l) { return conductance(l); } +constexpr auto operator"" _q_kS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_kS(long double l) { return conductance(l); } // MS -constexpr auto operator"" q_MS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_MS(long double l) { return conductance(l); } +constexpr auto operator"" _q_MS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_MS(long double l) { return conductance(l); } // GS -constexpr auto operator"" q_GS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_GS(long double l) { return conductance(l); } +constexpr auto operator"" _q_GS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_GS(long double l) { return conductance(l); } // TS -constexpr auto operator"" q_TS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_TS(long double l) { return conductance(l); } +constexpr auto operator"" _q_TS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_TS(long double l) { return conductance(l); } // PS -constexpr auto operator"" q_PS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_PS(long double l) { return conductance(l); } +constexpr auto operator"" _q_PS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_PS(long double l) { return conductance(l); } // ES -constexpr auto operator"" q_ES(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_ES(long double l) { return conductance(l); } +constexpr auto operator"" _q_ES(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_ES(long double l) { return conductance(l); } // ZS -constexpr auto operator"" q_ZS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_ZS(long double l) { return conductance(l); } +constexpr auto operator"" _q_ZS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_ZS(long double l) { return conductance(l); } // YS -constexpr auto operator"" q_YS(unsigned long long l) { return conductance(l); } -constexpr auto operator"" q_YS(long double l) { return conductance(l); } +constexpr auto operator"" _q_YS(unsigned long long l) { return conductance(l); } +constexpr auto operator"" _q_YS(long double l) { return conductance(l); } } // namespace literals diff --git a/src/include/units/physical/si/constants.h b/src/include/units/physical/si/constants.h index 2a0e0dc0..ad519ce0 100644 --- a/src/include/units/physical/si/constants.h +++ b/src/include/units/physical/si/constants.h @@ -54,7 +54,7 @@ template inline constexpr auto hyperfine_structure_transition_frequency = frequency(9'192'631'770); // template -// inline constexpr auto luminous_efficacy = 683q_lm / 1q_W; +// inline constexpr auto luminous_efficacy = 683_q_lm / 1_q_W; template inline constexpr auto standard_gravity = acceleration(9.80665); diff --git a/src/include/units/physical/si/current.h b/src/include/units/physical/si/current.h index 88e37efd..af808511 100644 --- a/src/include/units/physical/si/current.h +++ b/src/include/units/physical/si/current.h @@ -58,88 +58,88 @@ using current = quantity; inline namespace literals { // A -constexpr auto operator"" q_A(unsigned long long l) { return current(l); } -constexpr auto operator"" q_A(long double l) { return current(l); } +constexpr auto operator"" _q_A(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_A(long double l) { return current(l); } // yA -constexpr auto operator"" q_yA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_yA(long double l) { return current(l); } +constexpr auto operator"" _q_yA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_yA(long double l) { return current(l); } // zA -constexpr auto operator"" q_zA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_zA(long double l) { return current(l); } +constexpr auto operator"" _q_zA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_zA(long double l) { return current(l); } // aA -constexpr auto operator"" q_aA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_aA(long double l) { return current(l); } +constexpr auto operator"" _q_aA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_aA(long double l) { return current(l); } // fA -constexpr auto operator"" q_fA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_fA(long double l) { return current(l); } +constexpr auto operator"" _q_fA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_fA(long double l) { return current(l); } // pA -constexpr auto operator"" q_pA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_pA(long double l) { return current(l); } +constexpr auto operator"" _q_pA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_pA(long double l) { return current(l); } // nA -constexpr auto operator"" q_nA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_nA(long double l) { return current(l); } +constexpr auto operator"" _q_nA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_nA(long double l) { return current(l); } // uA -constexpr auto operator"" q_uA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_uA(long double l) { return current(l); } +constexpr auto operator"" _q_uA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_uA(long double l) { return current(l); } // mA -constexpr auto operator"" q_mA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_mA(long double l) { return current(l); } +constexpr auto operator"" _q_mA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_mA(long double l) { return current(l); } // cA -constexpr auto operator"" q_cA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_cA(long double l) { return current(l); } +constexpr auto operator"" _q_cA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_cA(long double l) { return current(l); } // dA -constexpr auto operator"" q_dA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_dA(long double l) { return current(l); } +constexpr auto operator"" _q_dA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_dA(long double l) { return current(l); } // daA -constexpr auto operator"" q_daA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_daA(long double l) { return current(l); } +constexpr auto operator"" _q_daA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_daA(long double l) { return current(l); } // hA -constexpr auto operator"" q_hA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_hA(long double l) { return current(l); } +constexpr auto operator"" _q_hA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_hA(long double l) { return current(l); } // kA -constexpr auto operator"" q_kA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_kA(long double l) { return current(l); } +constexpr auto operator"" _q_kA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_kA(long double l) { return current(l); } // MA -constexpr auto operator"" q_MA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_MA(long double l) { return current(l); } +constexpr auto operator"" _q_MA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_MA(long double l) { return current(l); } // GA -constexpr auto operator"" q_GA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_GA(long double l) { return current(l); } +constexpr auto operator"" _q_GA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_GA(long double l) { return current(l); } // TA -constexpr auto operator"" q_TA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_TA(long double l) { return current(l); } +constexpr auto operator"" _q_TA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_TA(long double l) { return current(l); } // PA -constexpr auto operator"" q_PA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_PA(long double l) { return current(l); } +constexpr auto operator"" _q_PA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_PA(long double l) { return current(l); } // EA -constexpr auto operator"" q_EA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_EA(long double l) { return current(l); } +constexpr auto operator"" _q_EA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_EA(long double l) { return current(l); } // ZA -constexpr auto operator"" q_ZA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_ZA(long double l) { return current(l); } +constexpr auto operator"" _q_ZA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_ZA(long double l) { return current(l); } // YA -constexpr auto operator"" q_YA(unsigned long long l) { return current(l); } -constexpr auto operator"" q_YA(long double l) { return current(l); } +constexpr auto operator"" _q_YA(unsigned long long l) { return current(l); } +constexpr auto operator"" _q_YA(long double l) { return current(l); } } // namespace literals diff --git a/src/include/units/physical/si/current_density.h b/src/include/units/physical/si/current_density.h index 19fed28c..bf7fed31 100644 --- a/src/include/units/physical/si/current_density.h +++ b/src/include/units/physical/si/current_density.h @@ -39,8 +39,8 @@ using current_density = quantity; inline namespace literals { -constexpr auto operator"" q_A_per_m2(unsigned long long l) { return current_density(l); } -constexpr auto operator"" q_A_per_m2(long double l) { return current_density(l); } +constexpr auto operator"" _q_A_per_m2(unsigned long long l) { return current_density(l); } +constexpr auto operator"" _q_A_per_m2(long double l) { return current_density(l); } } // namespace literals diff --git a/src/include/units/physical/si/density.h b/src/include/units/physical/si/density.h index fa9a1707..340e44a4 100644 --- a/src/include/units/physical/si/density.h +++ b/src/include/units/physical/si/density.h @@ -39,8 +39,8 @@ using density = quantity; inline namespace literals { -constexpr auto operator"" q_kg_per_m3(unsigned long long l) { return density(l); } -constexpr auto operator"" q_kg_per_m3(long double l) { return density(l); } +constexpr auto operator"" _q_kg_per_m3(unsigned long long l) { return density(l); } +constexpr auto operator"" _q_kg_per_m3(long double l) { return density(l); } } // namespace literals diff --git a/src/include/units/physical/si/dynamic_viscosity.h b/src/include/units/physical/si/dynamic_viscosity.h index 1a8b7dbb..95d2b716 100644 --- a/src/include/units/physical/si/dynamic_viscosity.h +++ b/src/include/units/physical/si/dynamic_viscosity.h @@ -38,8 +38,8 @@ using dynamic_viscosity = quantity; inline namespace literals { // Pa·s -constexpr auto operator"" q_Pa_s(unsigned long long l) { return dynamic_viscosity(l); } -constexpr auto operator"" q_Pa_s(long double l) { return dynamic_viscosity(l); } +constexpr auto operator"" _q_Pa_s(unsigned long long l) { return dynamic_viscosity(l); } +constexpr auto operator"" _q_Pa_s(long double l) { return dynamic_viscosity(l); } } // namespace literals diff --git a/src/include/units/physical/si/electric_charge.h b/src/include/units/physical/si/electric_charge.h index 60020408..19333bb2 100644 --- a/src/include/units/physical/si/electric_charge.h +++ b/src/include/units/physical/si/electric_charge.h @@ -39,8 +39,8 @@ using electric_charge = quantity; inline namespace literals { // C -constexpr auto operator"" q_C(unsigned long long l) { return electric_charge(l); } -constexpr auto operator"" q_C(long double l) { return electric_charge(l); } +constexpr auto operator"" _q_C(unsigned long long l) { return electric_charge(l); } +constexpr auto operator"" _q_C(long double l) { return electric_charge(l); } } // namespace literals diff --git a/src/include/units/physical/si/electric_field_strength.h b/src/include/units/physical/si/electric_field_strength.h index 0547d2a3..88126358 100644 --- a/src/include/units/physical/si/electric_field_strength.h +++ b/src/include/units/physical/si/electric_field_strength.h @@ -37,8 +37,8 @@ using electric_field_strength = quantity; inline namespace literals { // V/m -constexpr auto operator"" q_V_per_m(unsigned long long l) { return electric_field_strength(l); } -constexpr auto operator"" q_V_per_m(long double l) { return electric_field_strength(l); } +constexpr auto operator"" _q_V_per_m(unsigned long long l) { return electric_field_strength(l); } +constexpr auto operator"" _q_V_per_m(long double l) { return electric_field_strength(l); } } // namespace literals diff --git a/src/include/units/physical/si/energy.h b/src/include/units/physical/si/energy.h index d18fcd0e..23b71076 100644 --- a/src/include/units/physical/si/energy.h +++ b/src/include/units/physical/si/energy.h @@ -58,80 +58,80 @@ using energy = quantity; inline namespace literals { // J -constexpr auto operator"" q_J(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_J(long double l) { return energy(l); } +constexpr auto operator"" _q_J(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_J(long double l) { return energy(l); } // yJ -constexpr auto operator"" q_yJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_yJ(long double l) { return energy(l); } +constexpr auto operator"" _q_yJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_yJ(long double l) { return energy(l); } // zJ -constexpr auto operator"" q_zJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_zJ(long double l) { return energy(l); } +constexpr auto operator"" _q_zJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_zJ(long double l) { return energy(l); } // aJ -constexpr auto operator"" q_aJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_aJ(long double l) { return energy(l); } +constexpr auto operator"" _q_aJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_aJ(long double l) { return energy(l); } // fJ -constexpr auto operator"" q_fJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_fJ(long double l) { return energy(l); } +constexpr auto operator"" _q_fJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_fJ(long double l) { return energy(l); } // pJ -constexpr auto operator"" q_pJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_pJ(long double l) { return energy(l); } +constexpr auto operator"" _q_pJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_pJ(long double l) { return energy(l); } // nJ -constexpr auto operator"" q_nJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_nJ(long double l) { return energy(l); } +constexpr auto operator"" _q_nJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_nJ(long double l) { return energy(l); } // uJ -constexpr auto operator"" q_uJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_uJ(long double l) { return energy(l); } +constexpr auto operator"" _q_uJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_uJ(long double l) { return energy(l); } // mJ -constexpr auto operator"" q_mJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_mJ(long double l) { return energy(l); } +constexpr auto operator"" _q_mJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_mJ(long double l) { return energy(l); } // kJ -constexpr auto operator"" q_kJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_kJ(long double l) { return energy(l); } +constexpr auto operator"" _q_kJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_kJ(long double l) { return energy(l); } // MJ -constexpr auto operator"" q_MJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_MJ(long double l) { return energy(l); } +constexpr auto operator"" _q_MJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_MJ(long double l) { return energy(l); } // GJ -constexpr auto operator"" q_GJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_GJ(long double l) { return energy(l); } +constexpr auto operator"" _q_GJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_GJ(long double l) { return energy(l); } // TJ -constexpr auto operator"" q_TJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_TJ(long double l) { return energy(l); } +constexpr auto operator"" _q_TJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_TJ(long double l) { return energy(l); } // PJ -constexpr auto operator"" q_PJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_PJ(long double l) { return energy(l); } +constexpr auto operator"" _q_PJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_PJ(long double l) { return energy(l); } // EJ -constexpr auto operator"" q_EJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_EJ(long double l) { return energy(l); } +constexpr auto operator"" _q_EJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_EJ(long double l) { return energy(l); } // ZJ -constexpr auto operator"" q_ZJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_ZJ(long double l) { return energy(l); } +constexpr auto operator"" _q_ZJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_ZJ(long double l) { return energy(l); } // YJ -constexpr auto operator"" q_YJ(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_YJ(long double l) { return energy(l); } +constexpr auto operator"" _q_YJ(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_YJ(long double l) { return energy(l); } // eV -constexpr auto operator"" q_eV(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_eV(long double l) { return energy(l); } +constexpr auto operator"" _q_eV(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_eV(long double l) { return energy(l); } // GeV -constexpr auto operator"" q_GeV(unsigned long long l) { return energy(l); } -constexpr auto operator"" q_GeV(long double l) { return energy(l); } +constexpr auto operator"" _q_GeV(unsigned long long l) { return energy(l); } +constexpr auto operator"" _q_GeV(long double l) { return energy(l); } } // namespace literals diff --git a/src/include/units/physical/si/force.h b/src/include/units/physical/si/force.h index ce60ad7c..93c5430f 100644 --- a/src/include/units/physical/si/force.h +++ b/src/include/units/physical/si/force.h @@ -60,88 +60,88 @@ using force = quantity; inline namespace literals { // N -constexpr auto operator"" q_N(unsigned long long l) { return force(l); } -constexpr auto operator"" q_N(long double l) { return force(l); } +constexpr auto operator"" _q_N(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_N(long double l) { return force(l); } // yN -constexpr auto operator"" q_yN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_yN(long double l) { return force(l); } +constexpr auto operator"" _q_yN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_yN(long double l) { return force(l); } // zN -constexpr auto operator"" q_zN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_zN(long double l) { return force(l); } +constexpr auto operator"" _q_zN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_zN(long double l) { return force(l); } // aN -constexpr auto operator"" q_aN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_aN(long double l) { return force(l); } +constexpr auto operator"" _q_aN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_aN(long double l) { return force(l); } // fN -constexpr auto operator"" q_fN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_fN(long double l) { return force(l); } +constexpr auto operator"" _q_fN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_fN(long double l) { return force(l); } // pN -constexpr auto operator"" q_pN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_pN(long double l) { return force(l); } +constexpr auto operator"" _q_pN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_pN(long double l) { return force(l); } // nN -constexpr auto operator"" q_nN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_nN(long double l) { return force(l); } +constexpr auto operator"" _q_nN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_nN(long double l) { return force(l); } // uN -constexpr auto operator"" q_uN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_uN(long double l) { return force(l); } +constexpr auto operator"" _q_uN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_uN(long double l) { return force(l); } // mN -constexpr auto operator"" q_mN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_mN(long double l) { return force(l); } +constexpr auto operator"" _q_mN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_mN(long double l) { return force(l); } // cN -constexpr auto operator"" q_cN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_cN(long double l) { return force(l); } +constexpr auto operator"" _q_cN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_cN(long double l) { return force(l); } // dN -constexpr auto operator"" q_dN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_dN(long double l) { return force(l); } +constexpr auto operator"" _q_dN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_dN(long double l) { return force(l); } // daN -constexpr auto operator"" q_daN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_daN(long double l) { return force(l); } +constexpr auto operator"" _q_daN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_daN(long double l) { return force(l); } // hN -constexpr auto operator"" q_hN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_hN(long double l) { return force(l); } +constexpr auto operator"" _q_hN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_hN(long double l) { return force(l); } // kN -constexpr auto operator"" q_kN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_kN(long double l) { return force(l); } +constexpr auto operator"" _q_kN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_kN(long double l) { return force(l); } // MN -constexpr auto operator"" q_MN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_MN(long double l) { return force(l); } +constexpr auto operator"" _q_MN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_MN(long double l) { return force(l); } // GN -constexpr auto operator"" q_GN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_GN(long double l) { return force(l); } +constexpr auto operator"" _q_GN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_GN(long double l) { return force(l); } // TN -constexpr auto operator"" q_TN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_TN(long double l) { return force(l); } +constexpr auto operator"" _q_TN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_TN(long double l) { return force(l); } // PN -constexpr auto operator"" q_PN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_PN(long double l) { return force(l); } +constexpr auto operator"" _q_PN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_PN(long double l) { return force(l); } // EN -constexpr auto operator"" q_EN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_EN(long double l) { return force(l); } +constexpr auto operator"" _q_EN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_EN(long double l) { return force(l); } // ZN -constexpr auto operator"" q_ZN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_ZN(long double l) { return force(l); } +constexpr auto operator"" _q_ZN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_ZN(long double l) { return force(l); } // YN -constexpr auto operator"" q_YN(unsigned long long l) { return force(l); } -constexpr auto operator"" q_YN(long double l) { return force(l); } +constexpr auto operator"" _q_YN(unsigned long long l) { return force(l); } +constexpr auto operator"" _q_YN(long double l) { return force(l); } } // namespace literals diff --git a/src/include/units/physical/si/frequency.h b/src/include/units/physical/si/frequency.h index b41f4e46..b737089a 100644 --- a/src/include/units/physical/si/frequency.h +++ b/src/include/units/physical/si/frequency.h @@ -54,72 +54,72 @@ using frequency = quantity; inline namespace literals { // Hz -constexpr auto operator"" q_Hz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_Hz(long double l) { return frequency(l); } +constexpr auto operator"" _q_Hz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_Hz(long double l) { return frequency(l); } // yHz -constexpr auto operator"" q_yHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_yHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_yHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_yHz(long double l) { return frequency(l); } // zHz -constexpr auto operator"" q_zHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_zHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_zHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_zHz(long double l) { return frequency(l); } // aHz -constexpr auto operator"" q_aHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_aHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_aHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_aHz(long double l) { return frequency(l); } // fHz -constexpr auto operator"" q_fHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_fHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_fHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_fHz(long double l) { return frequency(l); } // pHz -constexpr auto operator"" q_pHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_pHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_pHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_pHz(long double l) { return frequency(l); } // nHz -constexpr auto operator"" q_nHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_nHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_nHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_nHz(long double l) { return frequency(l); } // uHz -constexpr auto operator"" q_uHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_uHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_uHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_uHz(long double l) { return frequency(l); } // mHz -constexpr auto operator"" q_mHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_mHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_mHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_mHz(long double l) { return frequency(l); } // kHz -constexpr auto operator"" q_kHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_kHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_kHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_kHz(long double l) { return frequency(l); } // MHz -constexpr auto operator"" q_MHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_MHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_MHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_MHz(long double l) { return frequency(l); } // GHz -constexpr auto operator"" q_GHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_GHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_GHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_GHz(long double l) { return frequency(l); } // THz -constexpr auto operator"" q_THz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_THz(long double l) { return frequency(l); } +constexpr auto operator"" _q_THz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_THz(long double l) { return frequency(l); } // PHz -constexpr auto operator"" q_PHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_PHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_PHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_PHz(long double l) { return frequency(l); } // EHz -constexpr auto operator"" q_EHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_EHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_EHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_EHz(long double l) { return frequency(l); } // ZHz -constexpr auto operator"" q_ZHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_ZHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_ZHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_ZHz(long double l) { return frequency(l); } // YHz -constexpr auto operator"" q_YHz(unsigned long long l) { return frequency(l); } -constexpr auto operator"" q_YHz(long double l) { return frequency(l); } +constexpr auto operator"" _q_YHz(unsigned long long l) { return frequency(l); } +constexpr auto operator"" _q_YHz(long double l) { return frequency(l); } } // namespace literals diff --git a/src/include/units/physical/si/heat_capacity.h b/src/include/units/physical/si/heat_capacity.h index 3911dc59..880a3b71 100644 --- a/src/include/units/physical/si/heat_capacity.h +++ b/src/include/units/physical/si/heat_capacity.h @@ -51,16 +51,16 @@ using molar_heat_capacity = quantity; inline namespace literals { // J/K -constexpr auto operator"" q_J_per_K(unsigned long long l) { return heat_capacity(l); } -constexpr auto operator"" q_J_per_K(long double l) { return heat_capacity(l); } +constexpr auto operator"" _q_J_per_K(unsigned long long l) { return heat_capacity(l); } +constexpr auto operator"" _q_J_per_K(long double l) { return heat_capacity(l); } // J/(kg·K) -constexpr auto operator"" q_J_per_kg_K(unsigned long long l) { return specific_heat_capacity(l); } -constexpr auto operator"" q_J_per_kg_K(long double l) { return specific_heat_capacity(l); } +constexpr auto operator"" _q_J_per_kg_K(unsigned long long l) { return specific_heat_capacity(l); } +constexpr auto operator"" _q_J_per_kg_K(long double l) { return specific_heat_capacity(l); } // J/(mol·K) -constexpr auto operator"" q_J_per_mol_K(unsigned long long l) { return molar_heat_capacity(l); } -constexpr auto operator"" q_J_per_mol_K(long double l) { return molar_heat_capacity(l); } +constexpr auto operator"" _q_J_per_mol_K(unsigned long long l) { return molar_heat_capacity(l); } +constexpr auto operator"" _q_J_per_mol_K(long double l) { return molar_heat_capacity(l); } } // namespace literals diff --git a/src/include/units/physical/si/inductance.h b/src/include/units/physical/si/inductance.h index 5a100fa6..f14c3798 100644 --- a/src/include/units/physical/si/inductance.h +++ b/src/include/units/physical/si/inductance.h @@ -56,72 +56,72 @@ using inductance = quantity; inline namespace literals { // H -constexpr auto operator"" q_H(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_H(long double l) { return inductance(l); } +constexpr auto operator"" _q_H(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_H(long double l) { return inductance(l); } // yH -constexpr auto operator"" q_yH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_yH(long double l) { return inductance(l); } +constexpr auto operator"" _q_yH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_yH(long double l) { return inductance(l); } // zH -constexpr auto operator"" q_zH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_zH(long double l) { return inductance(l); } +constexpr auto operator"" _q_zH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_zH(long double l) { return inductance(l); } // aH -constexpr auto operator"" q_aH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_aH(long double l) { return inductance(l); } +constexpr auto operator"" _q_aH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_aH(long double l) { return inductance(l); } // fH -constexpr auto operator"" q_fH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_fH(long double l) { return inductance(l); } +constexpr auto operator"" _q_fH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_fH(long double l) { return inductance(l); } // pH -constexpr auto operator"" q_pH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_pH(long double l) { return inductance(l); } +constexpr auto operator"" _q_pH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_pH(long double l) { return inductance(l); } // nH -constexpr auto operator"" q_nH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_nH(long double l) { return inductance(l); } +constexpr auto operator"" _q_nH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_nH(long double l) { return inductance(l); } // µH -constexpr auto operator"" q_uH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_uH(long double l) { return inductance(l); } +constexpr auto operator"" _q_uH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_uH(long double l) { return inductance(l); } // mH -constexpr auto operator"" q_mH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_mH(long double l) { return inductance(l); } +constexpr auto operator"" _q_mH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_mH(long double l) { return inductance(l); } // kH -constexpr auto operator"" q_kH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_kH(long double l) { return inductance(l); } +constexpr auto operator"" _q_kH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_kH(long double l) { return inductance(l); } // MH -constexpr auto operator"" q_MH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_MH(long double l) { return inductance(l); } +constexpr auto operator"" _q_MH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_MH(long double l) { return inductance(l); } // GH -constexpr auto operator"" q_GH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_GH(long double l) { return inductance(l); } +constexpr auto operator"" _q_GH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_GH(long double l) { return inductance(l); } // TH -constexpr auto operator"" q_TH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_TH(long double l) { return inductance(l); } +constexpr auto operator"" _q_TH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_TH(long double l) { return inductance(l); } // PH -constexpr auto operator"" q_PH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_PH(long double l) { return inductance(l); } +constexpr auto operator"" _q_PH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_PH(long double l) { return inductance(l); } // EH -constexpr auto operator"" q_EH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_EH(long double l) { return inductance(l); } +constexpr auto operator"" _q_EH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_EH(long double l) { return inductance(l); } // ZH -constexpr auto operator"" q_ZH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_ZH(long double l) { return inductance(l); } +constexpr auto operator"" _q_ZH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_ZH(long double l) { return inductance(l); } // YH -constexpr auto operator"" q_YH(unsigned long long l) { return inductance(l); } -constexpr auto operator"" q_YH(long double l) { return inductance(l); } +constexpr auto operator"" _q_YH(unsigned long long l) { return inductance(l); } +constexpr auto operator"" _q_YH(long double l) { return inductance(l); } } // namespace literals diff --git a/src/include/units/physical/si/length.h b/src/include/units/physical/si/length.h index c9c7e4be..b2aae6cb 100644 --- a/src/include/units/physical/si/length.h +++ b/src/include/units/physical/si/length.h @@ -60,92 +60,92 @@ using length = quantity; inline namespace literals { // m -constexpr auto operator"" q_m(unsigned long long l) { return length(l); } -constexpr auto operator"" q_m(long double l) { return length(l); } +constexpr auto operator"" _q_m(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_m(long double l) { return length(l); } // ym -constexpr auto operator"" q_ym(unsigned long long l) { return length(l); } -constexpr auto operator"" q_ym(long double l) { return length(l); } +constexpr auto operator"" _q_ym(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_ym(long double l) { return length(l); } // zm -constexpr auto operator"" q_zm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_zm(long double l) { return length(l); } +constexpr auto operator"" _q_zm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_zm(long double l) { return length(l); } // am -constexpr auto operator"" q_am(unsigned long long l) { return length(l); } -constexpr auto operator"" q_am(long double l) { return length(l); } +constexpr auto operator"" _q_am(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_am(long double l) { return length(l); } // fm -constexpr auto operator"" q_fm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_fm(long double l) { return length(l); } +constexpr auto operator"" _q_fm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_fm(long double l) { return length(l); } // pm -constexpr auto operator"" q_pm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_pm(long double l) { return length(l); } +constexpr auto operator"" _q_pm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_pm(long double l) { return length(l); } // nm -constexpr auto operator"" q_nm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_nm(long double l) { return length(l); } +constexpr auto operator"" _q_nm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_nm(long double l) { return length(l); } // um -constexpr auto operator"" q_um(unsigned long long l) { return length(l); } -constexpr auto operator"" q_um(long double l) { return length(l); } +constexpr auto operator"" _q_um(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_um(long double l) { return length(l); } // mm -constexpr auto operator"" q_mm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_mm(long double l) { return length(l); } +constexpr auto operator"" _q_mm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_mm(long double l) { return length(l); } // cm -constexpr auto operator"" q_cm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_cm(long double l) { return length(l); } +constexpr auto operator"" _q_cm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_cm(long double l) { return length(l); } // dm -constexpr auto operator"" q_dm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_dm(long double l) { return length(l); } +constexpr auto operator"" _q_dm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_dm(long double l) { return length(l); } // dam -constexpr auto operator"" q_dam(unsigned long long l) { return length(l); } -constexpr auto operator"" q_dam(long double l) { return length(l); } +constexpr auto operator"" _q_dam(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_dam(long double l) { return length(l); } // hm -constexpr auto operator"" q_hm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_hm(long double l) { return length(l); } +constexpr auto operator"" _q_hm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_hm(long double l) { return length(l); } // km -constexpr auto operator"" q_km(unsigned long long l) { return length(l); } -constexpr auto operator"" q_km(long double l) { return length(l); } +constexpr auto operator"" _q_km(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_km(long double l) { return length(l); } // Mm -constexpr auto operator"" q_Mm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_Mm(long double l) { return length(l); } +constexpr auto operator"" _q_Mm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_Mm(long double l) { return length(l); } // Gm -constexpr auto operator"" q_Gm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_Gm(long double l) { return length(l); } +constexpr auto operator"" _q_Gm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_Gm(long double l) { return length(l); } // Tm -constexpr auto operator"" q_Tm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_Tm(long double l) { return length(l); } +constexpr auto operator"" _q_Tm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_Tm(long double l) { return length(l); } // Pm -constexpr auto operator"" q_Pm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_Pm(long double l) { return length(l); } +constexpr auto operator"" _q_Pm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_Pm(long double l) { return length(l); } // Em -constexpr auto operator"" q_Em(unsigned long long l) { return length(l); } -constexpr auto operator"" q_Em(long double l) { return length(l); } +constexpr auto operator"" _q_Em(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_Em(long double l) { return length(l); } // Zm -constexpr auto operator"" q_Zm(unsigned long long l) { return length(l); } -constexpr auto operator"" q_Zm(long double l) { return length(l); } +constexpr auto operator"" _q_Zm(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_Zm(long double l) { return length(l); } // Ym -constexpr auto operator"" q_Ym(unsigned long long l) { return length(l); } -constexpr auto operator"" q_Ym(long double l) { return length(l); } +constexpr auto operator"" _q_Ym(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_Ym(long double l) { return length(l); } // au -constexpr auto operator"" q_au(unsigned long long l) { return length(l); } -constexpr auto operator"" q_au(long double l) { return length(l); } +constexpr auto operator"" _q_au(unsigned long long l) { return length(l); } +constexpr auto operator"" _q_au(long double l) { return length(l); } } // namespace literals diff --git a/src/include/units/physical/si/luminance.h b/src/include/units/physical/si/luminance.h index 1f1be254..0c49866c 100644 --- a/src/include/units/physical/si/luminance.h +++ b/src/include/units/physical/si/luminance.h @@ -38,8 +38,8 @@ using luminance = quantity; inline namespace literals { // cd/m² -constexpr auto operator"" q_cd_per_m2(unsigned long long l) { return luminance(l); } -constexpr auto operator"" q_cd_per_m2(long double l) { return luminance(l); } +constexpr auto operator"" _q_cd_per_m2(unsigned long long l) { return luminance(l); } +constexpr auto operator"" _q_cd_per_m2(long double l) { return luminance(l); } } // namespace literals diff --git a/src/include/units/physical/si/luminous_intensity.h b/src/include/units/physical/si/luminous_intensity.h index 27396f89..82cdda12 100644 --- a/src/include/units/physical/si/luminous_intensity.h +++ b/src/include/units/physical/si/luminous_intensity.h @@ -58,88 +58,88 @@ using luminous_intensity = quantity; inline namespace literals { // cd -constexpr auto operator"" q_cd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_cd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_cd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_cd(long double l) { return luminous_intensity(l); } // ycd -constexpr auto operator"" q_ycd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_ycd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ycd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ycd(long double l) { return luminous_intensity(l); } // zcd -constexpr auto operator"" q_zcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_zcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_zcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_zcd(long double l) { return luminous_intensity(l); } // acd -constexpr auto operator"" q_acd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_acd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_acd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_acd(long double l) { return luminous_intensity(l); } // fcd -constexpr auto operator"" q_fcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_fcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_fcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_fcd(long double l) { return luminous_intensity(l); } // pcd -constexpr auto operator"" q_pcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_pcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_pcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_pcd(long double l) { return luminous_intensity(l); } // ncd -constexpr auto operator"" q_ncd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_ncd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ncd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ncd(long double l) { return luminous_intensity(l); } // ucd -constexpr auto operator"" q_ucd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_ucd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ucd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ucd(long double l) { return luminous_intensity(l); } // mcd -constexpr auto operator"" q_mcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_mcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_mcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_mcd(long double l) { return luminous_intensity(l); } // ccd -constexpr auto operator"" q_ccd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_ccd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ccd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_ccd(long double l) { return luminous_intensity(l); } // dcd -constexpr auto operator"" q_dcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_dcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_dcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_dcd(long double l) { return luminous_intensity(l); } // dacd -constexpr auto operator"" q_dacd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_dacd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_dacd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_dacd(long double l) { return luminous_intensity(l); } // hcd -constexpr auto operator"" q_hcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_hcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_hcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_hcd(long double l) { return luminous_intensity(l); } // kcd -constexpr auto operator"" q_kcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_kcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_kcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_kcd(long double l) { return luminous_intensity(l); } // Mcd -constexpr auto operator"" q_Mcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_Mcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Mcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Mcd(long double l) { return luminous_intensity(l); } // Gcd -constexpr auto operator"" q_Gcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_Gcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Gcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Gcd(long double l) { return luminous_intensity(l); } // Tcd -constexpr auto operator"" q_Tcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_Tcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Tcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Tcd(long double l) { return luminous_intensity(l); } // Pcd -constexpr auto operator"" q_Pcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_Pcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Pcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Pcd(long double l) { return luminous_intensity(l); } // Ecd -constexpr auto operator"" q_Ecd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_Ecd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Ecd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Ecd(long double l) { return luminous_intensity(l); } // Zcd -constexpr auto operator"" q_Zcd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_Zcd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Zcd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Zcd(long double l) { return luminous_intensity(l); } // Ycd -constexpr auto operator"" q_Ycd(unsigned long long l) { return luminous_intensity(l); } -constexpr auto operator"" q_Ycd(long double l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Ycd(unsigned long long l) { return luminous_intensity(l); } +constexpr auto operator"" _q_Ycd(long double l) { return luminous_intensity(l); } } // namespace literals diff --git a/src/include/units/physical/si/magnetic_flux.h b/src/include/units/physical/si/magnetic_flux.h index 3d501fbb..b1e097cb 100644 --- a/src/include/units/physical/si/magnetic_flux.h +++ b/src/include/units/physical/si/magnetic_flux.h @@ -56,72 +56,72 @@ using magnetic_flux = quantity; inline namespace literals { // Wb -constexpr auto operator"" q_Wb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_Wb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_Wb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_Wb(long double l) { return magnetic_flux(l); } // yWb -constexpr auto operator"" q_yWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_yWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_yWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_yWb(long double l) { return magnetic_flux(l); } // zWb -constexpr auto operator"" q_zWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_zWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_zWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_zWb(long double l) { return magnetic_flux(l); } // aWb -constexpr auto operator"" q_aWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_aWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_aWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_aWb(long double l) { return magnetic_flux(l); } // fWb -constexpr auto operator"" q_fWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_fWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_fWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_fWb(long double l) { return magnetic_flux(l); } // pWb -constexpr auto operator"" q_pWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_pWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_pWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_pWb(long double l) { return magnetic_flux(l); } // nWb -constexpr auto operator"" q_nWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_nWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_nWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_nWb(long double l) { return magnetic_flux(l); } // µWb -constexpr auto operator"" q_uWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_uWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_uWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_uWb(long double l) { return magnetic_flux(l); } // mWb -constexpr auto operator"" q_mWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_mWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_mWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_mWb(long double l) { return magnetic_flux(l); } // kWb -constexpr auto operator"" q_kWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_kWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_kWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_kWb(long double l) { return magnetic_flux(l); } // MWb -constexpr auto operator"" q_MWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_MWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_MWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_MWb(long double l) { return magnetic_flux(l); } // GWb -constexpr auto operator"" q_GWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_GWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_GWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_GWb(long double l) { return magnetic_flux(l); } // TWb -constexpr auto operator"" q_TWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_TWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_TWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_TWb(long double l) { return magnetic_flux(l); } // PWb -constexpr auto operator"" q_PWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_PWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_PWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_PWb(long double l) { return magnetic_flux(l); } // EWb -constexpr auto operator"" q_EWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_EWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_EWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_EWb(long double l) { return magnetic_flux(l); } // ZWb -constexpr auto operator"" q_ZWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_ZWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_ZWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_ZWb(long double l) { return magnetic_flux(l); } // YWb -constexpr auto operator"" q_YWb(unsigned long long l) { return magnetic_flux(l); } -constexpr auto operator"" q_YWb(long double l) { return magnetic_flux(l); } +constexpr auto operator"" _q_YWb(unsigned long long l) { return magnetic_flux(l); } +constexpr auto operator"" _q_YWb(long double l) { return magnetic_flux(l); } } // namespace literals diff --git a/src/include/units/physical/si/magnetic_induction.h b/src/include/units/physical/si/magnetic_induction.h index 9d631e4e..7cfd15fe 100644 --- a/src/include/units/physical/si/magnetic_induction.h +++ b/src/include/units/physical/si/magnetic_induction.h @@ -60,76 +60,76 @@ using magnetic_induction = quantity; inline namespace literals { // T -constexpr auto operator"" q_T(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_T(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_T(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_T(long double l) { return magnetic_induction(l); } // yT -constexpr auto operator"" q_yT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_yT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_yT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_yT(long double l) { return magnetic_induction(l); } // zT -constexpr auto operator"" q_zT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_zT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_zT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_zT(long double l) { return magnetic_induction(l); } // aT -constexpr auto operator"" q_aT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_aT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_aT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_aT(long double l) { return magnetic_induction(l); } // fT -constexpr auto operator"" q_fT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_fT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_fT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_fT(long double l) { return magnetic_induction(l); } // pT -constexpr auto operator"" q_pT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_pT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_pT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_pT(long double l) { return magnetic_induction(l); } // nT -constexpr auto operator"" q_nT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_nT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_nT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_nT(long double l) { return magnetic_induction(l); } // µT -constexpr auto operator"" q_uT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_uT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_uT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_uT(long double l) { return magnetic_induction(l); } // mT -constexpr auto operator"" q_mT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_mT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_mT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_mT(long double l) { return magnetic_induction(l); } // kT -constexpr auto operator"" q_kT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_kT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_kT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_kT(long double l) { return magnetic_induction(l); } // MT -constexpr auto operator"" q_MT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_MT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_MT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_MT(long double l) { return magnetic_induction(l); } // GT -constexpr auto operator"" q_GT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_GT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_GT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_GT(long double l) { return magnetic_induction(l); } // TT -constexpr auto operator"" q_TT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_TT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_TT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_TT(long double l) { return magnetic_induction(l); } // PT -constexpr auto operator"" q_PT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_PT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_PT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_PT(long double l) { return magnetic_induction(l); } // ET -constexpr auto operator"" q_ET(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_ET(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_ET(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_ET(long double l) { return magnetic_induction(l); } // ZT -constexpr auto operator"" q_ZT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_ZT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_ZT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_ZT(long double l) { return magnetic_induction(l); } // YT -constexpr auto operator"" q_YT(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_YT(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_YT(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_YT(long double l) { return magnetic_induction(l); } // G -constexpr auto operator"" q_G(unsigned long long l) { return magnetic_induction(l); } -constexpr auto operator"" q_G(long double l) { return magnetic_induction(l); } +constexpr auto operator"" _q_G(unsigned long long l) { return magnetic_induction(l); } +constexpr auto operator"" _q_G(long double l) { return magnetic_induction(l); } } // namespace literals diff --git a/src/include/units/physical/si/mass.h b/src/include/units/physical/si/mass.h index 8ff950da..d39e7417 100644 --- a/src/include/units/physical/si/mass.h +++ b/src/include/units/physical/si/mass.h @@ -82,176 +82,176 @@ using mass = quantity; inline namespace literals { // g -constexpr auto operator"" q_g(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_g(long double l) { return mass(l); } +constexpr auto operator"" _q_g(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_g(long double l) { return mass(l); } // yg -constexpr auto operator"" q_yg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_yg(long double l) { return mass(l); } +constexpr auto operator"" _q_yg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_yg(long double l) { return mass(l); } // zg -constexpr auto operator"" q_zg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_zg(long double l) { return mass(l); } +constexpr auto operator"" _q_zg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_zg(long double l) { return mass(l); } // ag -constexpr auto operator"" q_ag(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ag(long double l) { return mass(l); } +constexpr auto operator"" _q_ag(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ag(long double l) { return mass(l); } // fg -constexpr auto operator"" q_fg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_fg(long double l) { return mass(l); } +constexpr auto operator"" _q_fg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_fg(long double l) { return mass(l); } // pg -constexpr auto operator"" q_pg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_pg(long double l) { return mass(l); } +constexpr auto operator"" _q_pg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_pg(long double l) { return mass(l); } // ng -constexpr auto operator"" q_ng(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ng(long double l) { return mass(l); } +constexpr auto operator"" _q_ng(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ng(long double l) { return mass(l); } // ug -constexpr auto operator"" q_ug(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ug(long double l) { return mass(l); } +constexpr auto operator"" _q_ug(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ug(long double l) { return mass(l); } // mg -constexpr auto operator"" q_mg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_mg(long double l) { return mass(l); } +constexpr auto operator"" _q_mg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_mg(long double l) { return mass(l); } // cg -constexpr auto operator"" q_cg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_cg(long double l) { return mass(l); } +constexpr auto operator"" _q_cg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_cg(long double l) { return mass(l); } // dg -constexpr auto operator"" q_dg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_dg(long double l) { return mass(l); } +constexpr auto operator"" _q_dg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_dg(long double l) { return mass(l); } // dag -constexpr auto operator"" q_dag(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_dag(long double l) { return mass(l); } +constexpr auto operator"" _q_dag(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_dag(long double l) { return mass(l); } // hg -constexpr auto operator"" q_hg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_hg(long double l) { return mass(l); } +constexpr auto operator"" _q_hg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_hg(long double l) { return mass(l); } // kg -constexpr auto operator"" q_kg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_kg(long double l) { return mass(l); } +constexpr auto operator"" _q_kg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_kg(long double l) { return mass(l); } // Mg -constexpr auto operator"" q_Mg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Mg(long double l) { return mass(l); } +constexpr auto operator"" _q_Mg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Mg(long double l) { return mass(l); } // Gg -constexpr auto operator"" q_Gg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Gg(long double l) { return mass(l); } +constexpr auto operator"" _q_Gg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Gg(long double l) { return mass(l); } // Tg -constexpr auto operator"" q_Tg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Tg(long double l) { return mass(l); } +constexpr auto operator"" _q_Tg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Tg(long double l) { return mass(l); } // Pg -constexpr auto operator"" q_Pg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Pg(long double l) { return mass(l); } +constexpr auto operator"" _q_Pg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Pg(long double l) { return mass(l); } // Eg -constexpr auto operator"" q_Eg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Eg(long double l) { return mass(l); } +constexpr auto operator"" _q_Eg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Eg(long double l) { return mass(l); } // Zg -constexpr auto operator"" q_Zg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Zg(long double l) { return mass(l); } +constexpr auto operator"" _q_Zg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Zg(long double l) { return mass(l); } // Yg -constexpr auto operator"" q_Yg(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Yg(long double l) { return mass(l); } +constexpr auto operator"" _q_Yg(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Yg(long double l) { return mass(l); } // t -constexpr auto operator"" q_t(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_t(long double l) { return mass(l); } +constexpr auto operator"" _q_t(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_t(long double l) { return mass(l); } // yt -constexpr auto operator"" q_yt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_yt(long double l) { return mass(l); } +constexpr auto operator"" _q_yt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_yt(long double l) { return mass(l); } // zt -constexpr auto operator"" q_zt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_zt(long double l) { return mass(l); } +constexpr auto operator"" _q_zt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_zt(long double l) { return mass(l); } // at -constexpr auto operator"" q_at(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_at(long double l) { return mass(l); } +constexpr auto operator"" _q_at(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_at(long double l) { return mass(l); } // ft -/*constexpr auto operator"" q_ft(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ft(long double l) { return mass(l); }*/ +/*constexpr auto operator"" _q_ft(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ft(long double l) { return mass(l); }*/ // pt -constexpr auto operator"" q_pt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_pt(long double l) { return mass(l); } +constexpr auto operator"" _q_pt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_pt(long double l) { return mass(l); } // nt -constexpr auto operator"" q_nt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_nt(long double l) { return mass(l); } +constexpr auto operator"" _q_nt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_nt(long double l) { return mass(l); } // ut -constexpr auto operator"" q_ut(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ut(long double l) { return mass(l); } +constexpr auto operator"" _q_ut(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ut(long double l) { return mass(l); } // mt -constexpr auto operator"" q_mt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_mt(long double l) { return mass(l); } +constexpr auto operator"" _q_mt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_mt(long double l) { return mass(l); } // ct -constexpr auto operator"" q_ct(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ct(long double l) { return mass(l); } +constexpr auto operator"" _q_ct(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ct(long double l) { return mass(l); } // dt -constexpr auto operator"" q_dt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_dt(long double l) { return mass(l); } +constexpr auto operator"" _q_dt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_dt(long double l) { return mass(l); } // dat -constexpr auto operator"" q_dat(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_dat(long double l) { return mass(l); } +constexpr auto operator"" _q_dat(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_dat(long double l) { return mass(l); } // ht -constexpr auto operator"" q_ht(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_ht(long double l) { return mass(l); } +constexpr auto operator"" _q_ht(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_ht(long double l) { return mass(l); } // kt -constexpr auto operator"" q_kt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_kt(long double l) { return mass(l); } +constexpr auto operator"" _q_kt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_kt(long double l) { return mass(l); } // Mt -constexpr auto operator"" q_Mt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Mt(long double l) { return mass(l); } +constexpr auto operator"" _q_Mt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Mt(long double l) { return mass(l); } // Gt -constexpr auto operator"" q_Gt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Gt(long double l) { return mass(l); } +constexpr auto operator"" _q_Gt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Gt(long double l) { return mass(l); } // Tt -constexpr auto operator"" q_Tt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Tt(long double l) { return mass(l); } +constexpr auto operator"" _q_Tt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Tt(long double l) { return mass(l); } // Pt -constexpr auto operator"" q_Pt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Pt(long double l) { return mass(l); } +constexpr auto operator"" _q_Pt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Pt(long double l) { return mass(l); } // Et -constexpr auto operator"" q_Et(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Et(long double l) { return mass(l); } +constexpr auto operator"" _q_Et(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Et(long double l) { return mass(l); } // Zt -constexpr auto operator"" q_Zt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Zt(long double l) { return mass(l); } +constexpr auto operator"" _q_Zt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Zt(long double l) { return mass(l); } // Yt -constexpr auto operator"" q_Yt(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Yt(long double l) { return mass(l); } +constexpr auto operator"" _q_Yt(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Yt(long double l) { return mass(l); } // Da -constexpr auto operator"" q_Da(unsigned long long l) { return mass(l); } -constexpr auto operator"" q_Da(long double l) { return mass(l); } +constexpr auto operator"" _q_Da(unsigned long long l) { return mass(l); } +constexpr auto operator"" _q_Da(long double l) { return mass(l); } } // namespace literals diff --git a/src/include/units/physical/si/molar_energy.h b/src/include/units/physical/si/molar_energy.h index cbfd44d6..3a3d8cd4 100644 --- a/src/include/units/physical/si/molar_energy.h +++ b/src/include/units/physical/si/molar_energy.h @@ -40,8 +40,8 @@ using molar_energy = quantity; inline namespace literals { // H/m -constexpr auto operator"" q_J_per_mol(unsigned long long l) { return molar_energy(l); } -constexpr auto operator"" q_J_per_mol(long double l) { return molar_energy(l); } +constexpr auto operator"" _q_J_per_mol(unsigned long long l) { return molar_energy(l); } +constexpr auto operator"" _q_J_per_mol(long double l) { return molar_energy(l); } } // namespace literals diff --git a/src/include/units/physical/si/momentum.h b/src/include/units/physical/si/momentum.h index f8f3d6da..b311ef60 100644 --- a/src/include/units/physical/si/momentum.h +++ b/src/include/units/physical/si/momentum.h @@ -38,8 +38,8 @@ using momentum = quantity; inline namespace literals { // kgmps -constexpr auto operator"" q_kg_m_per_s(unsigned long long l) { return momentum(l); } -constexpr auto operator"" q_kg_m_per_s(long double l) { return momentum(l); } +constexpr auto operator"" _q_kg_m_per_s(unsigned long long l) { return momentum(l); } +constexpr auto operator"" _q_kg_m_per_s(long double l) { return momentum(l); } } // namespace literals diff --git a/src/include/units/physical/si/permeability.h b/src/include/units/physical/si/permeability.h index a0bd9640..defc7715 100644 --- a/src/include/units/physical/si/permeability.h +++ b/src/include/units/physical/si/permeability.h @@ -39,8 +39,8 @@ using permeability = quantity; inline namespace literals { // H/m -constexpr auto operator"" q_H_per_m(unsigned long long l) { return permeability(l); } -constexpr auto operator"" q_H_per_m(long double l) { return permeability(l); } +constexpr auto operator"" _q_H_per_m(unsigned long long l) { return permeability(l); } +constexpr auto operator"" _q_H_per_m(long double l) { return permeability(l); } } // namespace literals diff --git a/src/include/units/physical/si/permittivity.h b/src/include/units/physical/si/permittivity.h index 151147ca..3d3a3239 100644 --- a/src/include/units/physical/si/permittivity.h +++ b/src/include/units/physical/si/permittivity.h @@ -39,8 +39,8 @@ using permittivity = quantity; inline namespace literals { // F/m -constexpr auto operator"" q_F_per_m(unsigned long long l) { return permittivity(l); } -constexpr auto operator"" q_F_per_m(long double l) { return permittivity(l); } +constexpr auto operator"" _q_F_per_m(unsigned long long l) { return permittivity(l); } +constexpr auto operator"" _q_F_per_m(long double l) { return permittivity(l); } } // namespace literals diff --git a/src/include/units/physical/si/power.h b/src/include/units/physical/si/power.h index 42f62a02..def6ae9b 100644 --- a/src/include/units/physical/si/power.h +++ b/src/include/units/physical/si/power.h @@ -55,72 +55,72 @@ using power = quantity; inline namespace literals { // W -constexpr auto operator"" q_W(unsigned long long l) { return power(l); } -constexpr auto operator"" q_W(long double l) { return power(l); } +constexpr auto operator"" _q_W(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_W(long double l) { return power(l); } // yW -constexpr auto operator"" q_yW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_yW(long double l) { return power(l); } +constexpr auto operator"" _q_yW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_yW(long double l) { return power(l); } // zW -constexpr auto operator"" q_zW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_zW(long double l) { return power(l); } +constexpr auto operator"" _q_zW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_zW(long double l) { return power(l); } // aW -constexpr auto operator"" q_aW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_aW(long double l) { return power(l); } +constexpr auto operator"" _q_aW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_aW(long double l) { return power(l); } // fW -constexpr auto operator"" q_fW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_fW(long double l) { return power(l); } +constexpr auto operator"" _q_fW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_fW(long double l) { return power(l); } // pW -constexpr auto operator"" q_pW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_pW(long double l) { return power(l); } +constexpr auto operator"" _q_pW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_pW(long double l) { return power(l); } // nW -constexpr auto operator"" q_nW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_nW(long double l) { return power(l); } +constexpr auto operator"" _q_nW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_nW(long double l) { return power(l); } // uW -constexpr auto operator"" q_uW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_uW(long double l) { return power(l); } +constexpr auto operator"" _q_uW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_uW(long double l) { return power(l); } // mW -constexpr auto operator"" q_mW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_mW(long double l) { return power(l); } +constexpr auto operator"" _q_mW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_mW(long double l) { return power(l); } // kW -constexpr auto operator"" q_kW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_kW(long double l) { return power(l); } +constexpr auto operator"" _q_kW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_kW(long double l) { return power(l); } // MW -constexpr auto operator"" q_MW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_MW(long double l) { return power(l); } +constexpr auto operator"" _q_MW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_MW(long double l) { return power(l); } // GW -constexpr auto operator"" q_GW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_GW(long double l) { return power(l); } +constexpr auto operator"" _q_GW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_GW(long double l) { return power(l); } // TW -constexpr auto operator"" q_TW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_TW(long double l) { return power(l); } +constexpr auto operator"" _q_TW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_TW(long double l) { return power(l); } // PW -constexpr auto operator"" q_PW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_PW(long double l) { return power(l); } +constexpr auto operator"" _q_PW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_PW(long double l) { return power(l); } // EW -constexpr auto operator"" q_EW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_EW(long double l) { return power(l); } +constexpr auto operator"" _q_EW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_EW(long double l) { return power(l); } // ZW -constexpr auto operator"" q_ZW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_ZW(long double l) { return power(l); } +constexpr auto operator"" _q_ZW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_ZW(long double l) { return power(l); } // YW -constexpr auto operator"" q_YW(unsigned long long l) { return power(l); } -constexpr auto operator"" q_YW(long double l) { return power(l); } +constexpr auto operator"" _q_YW(unsigned long long l) { return power(l); } +constexpr auto operator"" _q_YW(long double l) { return power(l); } } // namespace literals diff --git a/src/include/units/physical/si/pressure.h b/src/include/units/physical/si/pressure.h index e0903d9d..a20d64c2 100644 --- a/src/include/units/physical/si/pressure.h +++ b/src/include/units/physical/si/pressure.h @@ -60,88 +60,88 @@ using pressure = quantity; inline namespace literals { // Pa -constexpr auto operator"" q_Pa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_Pa(long double l) { return pressure(l); } +constexpr auto operator"" _q_Pa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_Pa(long double l) { return pressure(l); } // yPa -constexpr auto operator"" q_yPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_yPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_yPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_yPa(long double l) { return pressure(l); } // zPa -constexpr auto operator"" q_zPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_zPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_zPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_zPa(long double l) { return pressure(l); } // aPa -constexpr auto operator"" q_aPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_aPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_aPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_aPa(long double l) { return pressure(l); } // fPa -constexpr auto operator"" q_fPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_fPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_fPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_fPa(long double l) { return pressure(l); } // pPa -constexpr auto operator"" q_pPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_pPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_pPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_pPa(long double l) { return pressure(l); } // nPa -constexpr auto operator"" q_nPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_nPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_nPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_nPa(long double l) { return pressure(l); } // uPa -constexpr auto operator"" q_uPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_uPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_uPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_uPa(long double l) { return pressure(l); } // mPa -constexpr auto operator"" q_mPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_mPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_mPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_mPa(long double l) { return pressure(l); } // cPa -constexpr auto operator"" q_cPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_cPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_cPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_cPa(long double l) { return pressure(l); } // dPa -constexpr auto operator"" q_dPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_dPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_dPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_dPa(long double l) { return pressure(l); } // daPa -constexpr auto operator"" q_daPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_daPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_daPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_daPa(long double l) { return pressure(l); } // hPa -constexpr auto operator"" q_hPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_hPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_hPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_hPa(long double l) { return pressure(l); } // kPa -constexpr auto operator"" q_kPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_kPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_kPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_kPa(long double l) { return pressure(l); } // MPa -constexpr auto operator"" q_MPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_MPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_MPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_MPa(long double l) { return pressure(l); } // GPa -constexpr auto operator"" q_GPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_GPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_GPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_GPa(long double l) { return pressure(l); } // TPa -constexpr auto operator"" q_TPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_TPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_TPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_TPa(long double l) { return pressure(l); } // PPa -constexpr auto operator"" q_PPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_PPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_PPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_PPa(long double l) { return pressure(l); } // EPa -constexpr auto operator"" q_EPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_EPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_EPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_EPa(long double l) { return pressure(l); } // ZPa -constexpr auto operator"" q_ZPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_ZPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_ZPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_ZPa(long double l) { return pressure(l); } // YPa -constexpr auto operator"" q_YPa(unsigned long long l) { return pressure(l); } -constexpr auto operator"" q_YPa(long double l) { return pressure(l); } +constexpr auto operator"" _q_YPa(unsigned long long l) { return pressure(l); } +constexpr auto operator"" _q_YPa(long double l) { return pressure(l); } } // namespace literals diff --git a/src/include/units/physical/si/resistance.h b/src/include/units/physical/si/resistance.h index 4576b977..e857a845 100644 --- a/src/include/units/physical/si/resistance.h +++ b/src/include/units/physical/si/resistance.h @@ -56,72 +56,72 @@ using resistance = quantity; inline namespace literals { // R -constexpr auto operator"" q_R(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_R(long double l) { return resistance(l); } +constexpr auto operator"" _q_R(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_R(long double l) { return resistance(l); } // yR -constexpr auto operator"" q_yR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_yR(long double l) { return resistance(l); } +constexpr auto operator"" _q_yR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_yR(long double l) { return resistance(l); } // zR -constexpr auto operator"" q_zR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_zR(long double l) { return resistance(l); } +constexpr auto operator"" _q_zR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_zR(long double l) { return resistance(l); } // aR -constexpr auto operator"" q_aR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_aR(long double l) { return resistance(l); } +constexpr auto operator"" _q_aR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_aR(long double l) { return resistance(l); } // fR -constexpr auto operator"" q_fR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_fR(long double l) { return resistance(l); } +constexpr auto operator"" _q_fR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_fR(long double l) { return resistance(l); } // pR -constexpr auto operator"" q_pR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_pR(long double l) { return resistance(l); } +constexpr auto operator"" _q_pR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_pR(long double l) { return resistance(l); } // nR -constexpr auto operator"" q_nR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_nR(long double l) { return resistance(l); } +constexpr auto operator"" _q_nR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_nR(long double l) { return resistance(l); } // uR -constexpr auto operator"" q_uR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_uR(long double l) { return resistance(l); } +constexpr auto operator"" _q_uR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_uR(long double l) { return resistance(l); } // mR -constexpr auto operator"" q_mR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_mR(long double l) { return resistance(l); } +constexpr auto operator"" _q_mR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_mR(long double l) { return resistance(l); } // kR -constexpr auto operator"" q_kR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_kR(long double l) { return resistance(l); } +constexpr auto operator"" _q_kR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_kR(long double l) { return resistance(l); } // MR -constexpr auto operator"" q_MR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_MR(long double l) { return resistance(l); } +constexpr auto operator"" _q_MR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_MR(long double l) { return resistance(l); } // GR -constexpr auto operator"" q_GR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_GR(long double l) { return resistance(l); } +constexpr auto operator"" _q_GR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_GR(long double l) { return resistance(l); } // TR -constexpr auto operator"" q_TR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_TR(long double l) { return resistance(l); } +constexpr auto operator"" _q_TR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_TR(long double l) { return resistance(l); } // PR -constexpr auto operator"" q_PR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_PR(long double l) { return resistance(l); } +constexpr auto operator"" _q_PR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_PR(long double l) { return resistance(l); } // ER -constexpr auto operator"" q_ER(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_ER(long double l) { return resistance(l); } +constexpr auto operator"" _q_ER(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_ER(long double l) { return resistance(l); } // ZR -constexpr auto operator"" q_ZR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_ZR(long double l) { return resistance(l); } +constexpr auto operator"" _q_ZR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_ZR(long double l) { return resistance(l); } // YR -constexpr auto operator"" q_YR(unsigned long long l) { return resistance(l); } -constexpr auto operator"" q_YR(long double l) { return resistance(l); } +constexpr auto operator"" _q_YR(unsigned long long l) { return resistance(l); } +constexpr auto operator"" _q_YR(long double l) { return resistance(l); } } // namespace literals diff --git a/src/include/units/physical/si/speed.h b/src/include/units/physical/si/speed.h index 14f08186..d05af1bf 100644 --- a/src/include/units/physical/si/speed.h +++ b/src/include/units/physical/si/speed.h @@ -40,12 +40,12 @@ using speed = quantity; inline namespace literals { // mps -constexpr auto operator"" q_m_per_s(unsigned long long l) { return speed(l); } -constexpr auto operator"" q_m_per_s(long double l) { return speed(l); } +constexpr auto operator"" _q_m_per_s(unsigned long long l) { return speed(l); } +constexpr auto operator"" _q_m_per_s(long double l) { return speed(l); } // kmph -constexpr auto operator"" q_km_per_h(unsigned long long l) { return speed(l); } -constexpr auto operator"" q_km_per_h(long double l) { return speed(l); } +constexpr auto operator"" _q_km_per_h(unsigned long long l) { return speed(l); } +constexpr auto operator"" _q_km_per_h(long double l) { return speed(l); } } // namespace literals diff --git a/src/include/units/physical/si/substance.h b/src/include/units/physical/si/substance.h index c7706edc..4c3c5a5a 100644 --- a/src/include/units/physical/si/substance.h +++ b/src/include/units/physical/si/substance.h @@ -38,8 +38,8 @@ using substance = quantity; inline namespace literals { // mol -constexpr auto operator"" q_mol(unsigned long long l) { return substance(l); } -constexpr auto operator"" q_mol(long double l) { return substance(l); } +constexpr auto operator"" _q_mol(unsigned long long l) { return substance(l); } +constexpr auto operator"" _q_mol(long double l) { return substance(l); } } // namespace literals diff --git a/src/include/units/physical/si/surface_tension.h b/src/include/units/physical/si/surface_tension.h index 67867061..1b20f461 100644 --- a/src/include/units/physical/si/surface_tension.h +++ b/src/include/units/physical/si/surface_tension.h @@ -38,8 +38,8 @@ using surface_tension = quantity; inline namespace literals { // Nm - constexpr auto operator"" q_N_per_m(unsigned long long l) { return surface_tension(l); } - constexpr auto operator"" q_N_per_m(long double l) { return surface_tension(l); } + constexpr auto operator"" _q_N_per_m(unsigned long long l) { return surface_tension(l); } + constexpr auto operator"" _q_N_per_m(long double l) { return surface_tension(l); } } // namespace literals diff --git a/src/include/units/physical/si/temperature.h b/src/include/units/physical/si/temperature.h index 19fc2ddb..c52fd838 100644 --- a/src/include/units/physical/si/temperature.h +++ b/src/include/units/physical/si/temperature.h @@ -37,8 +37,8 @@ using temperature = quantity; inline namespace literals { // K -constexpr auto operator"" q_K(unsigned long long l) { return temperature(l); } -constexpr auto operator"" q_K(long double l) { return temperature(l); } +constexpr auto operator"" _q_K(unsigned long long l) { return temperature(l); } +constexpr auto operator"" _q_K(long double l) { return temperature(l); } } // namespace literals diff --git a/src/include/units/physical/si/thermal_conductivity.h b/src/include/units/physical/si/thermal_conductivity.h index ff845792..8b20b744 100644 --- a/src/include/units/physical/si/thermal_conductivity.h +++ b/src/include/units/physical/si/thermal_conductivity.h @@ -39,8 +39,8 @@ using thermal_conductivity = quantity; inline namespace literals { // J/K -constexpr auto operator"" q_W_per_m_K(unsigned long long l) { return thermal_conductivity(l); } -constexpr auto operator"" q_W_per_m_K(long double l) { return thermal_conductivity(l); } +constexpr auto operator"" _q_W_per_m_K(unsigned long long l) { return thermal_conductivity(l); } +constexpr auto operator"" _q_W_per_m_K(long double l) { return thermal_conductivity(l); } } // namespace literals diff --git a/src/include/units/physical/si/time.h b/src/include/units/physical/si/time.h index f3352295..c6c37359 100644 --- a/src/include/units/physical/si/time.h +++ b/src/include/units/physical/si/time.h @@ -49,52 +49,52 @@ using time = quantity; inline namespace literals { // ys -constexpr auto operator"" q_ys(unsigned long long l) { return time(l); } -constexpr auto operator"" q_ys(long double l) { return time(l); } +constexpr auto operator"" _q_ys(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_ys(long double l) { return time(l); } // zs -constexpr auto operator"" q_zs(unsigned long long l) { return time(l); } -constexpr auto operator"" q_zs(long double l) { return time(l); } +constexpr auto operator"" _q_zs(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_zs(long double l) { return time(l); } // as -constexpr auto operator"" q_as(unsigned long long l) { return time(l); } -constexpr auto operator"" q_as(long double l) { return time(l); } +constexpr auto operator"" _q_as(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_as(long double l) { return time(l); } // fs -constexpr auto operator"" q_fs(unsigned long long l) { return time(l); } -constexpr auto operator"" q_fs(long double l) { return time(l); } +constexpr auto operator"" _q_fs(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_fs(long double l) { return time(l); } // ps -constexpr auto operator"" q_ps(unsigned long long l) { return time(l); } -constexpr auto operator"" q_ps(long double l) { return time(l); } +constexpr auto operator"" _q_ps(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_ps(long double l) { return time(l); } // ns -constexpr auto operator"" q_ns(unsigned long long l) { return time(l); } -constexpr auto operator"" q_ns(long double l) { return time(l); } +constexpr auto operator"" _q_ns(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_ns(long double l) { return time(l); } // us -constexpr auto operator"" q_us(unsigned long long l) { return time(l); } -constexpr auto operator"" q_us(long double l) { return time(l); } +constexpr auto operator"" _q_us(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_us(long double l) { return time(l); } // ms -constexpr auto operator"" q_ms(unsigned long long l) { return time(l); } -constexpr auto operator"" q_ms(long double l) { return time(l); } +constexpr auto operator"" _q_ms(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_ms(long double l) { return time(l); } // s -constexpr auto operator"" q_s(unsigned long long l) { return time(l); } -constexpr auto operator"" q_s(long double l) { return time(l); } +constexpr auto operator"" _q_s(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_s(long double l) { return time(l); } // min -constexpr auto operator"" q_min(unsigned long long l) { return time(l); } -constexpr auto operator"" q_min(long double l) { return time(l); } +constexpr auto operator"" _q_min(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_min(long double l) { return time(l); } // h -constexpr auto operator"" q_h(unsigned long long l) { return time(l); } -constexpr auto operator"" q_h(long double l) { return time(l); } +constexpr auto operator"" _q_h(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_h(long double l) { return time(l); } // d -constexpr auto operator"" q_d(unsigned long long l) { return time(l); } -constexpr auto operator"" q_d(long double l) { return time(l); } +constexpr auto operator"" _q_d(unsigned long long l) { return time(l); } +constexpr auto operator"" _q_d(long double l) { return time(l); } } // namespace literals diff --git a/src/include/units/physical/si/torque.h b/src/include/units/physical/si/torque.h index e5aee85d..1792889a 100644 --- a/src/include/units/physical/si/torque.h +++ b/src/include/units/physical/si/torque.h @@ -40,8 +40,8 @@ using torque = quantity; inline namespace literals { // Nm -constexpr auto operator"" q_Nm(unsigned long long l) { return torque(l); } -constexpr auto operator"" q_Nm(long double l) { return torque(l); } +constexpr auto operator"" _q_Nm(unsigned long long l) { return torque(l); } +constexpr auto operator"" _q_Nm(long double l) { return torque(l); } } // namespace literals diff --git a/src/include/units/physical/si/voltage.h b/src/include/units/physical/si/voltage.h index a0e9ee7a..3d6eba9a 100644 --- a/src/include/units/physical/si/voltage.h +++ b/src/include/units/physical/si/voltage.h @@ -60,88 +60,88 @@ using voltage = quantity; inline namespace literals { // V -constexpr auto operator"" q_V(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_V(long double l) { return voltage(l); } +constexpr auto operator"" _q_V(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_V(long double l) { return voltage(l); } // yV -constexpr auto operator"" q_yV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_yV(long double l) { return voltage(l); } +constexpr auto operator"" _q_yV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_yV(long double l) { return voltage(l); } // zV -constexpr auto operator"" q_zV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_zV(long double l) { return voltage(l); } +constexpr auto operator"" _q_zV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_zV(long double l) { return voltage(l); } // aV -constexpr auto operator"" q_aV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_aV(long double l) { return voltage(l); } +constexpr auto operator"" _q_aV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_aV(long double l) { return voltage(l); } // fV -constexpr auto operator"" q_fV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_fV(long double l) { return voltage(l); } +constexpr auto operator"" _q_fV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_fV(long double l) { return voltage(l); } // pV -constexpr auto operator"" q_pV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_pV(long double l) { return voltage(l); } +constexpr auto operator"" _q_pV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_pV(long double l) { return voltage(l); } // nV -constexpr auto operator"" q_nV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_nV(long double l) { return voltage(l); } +constexpr auto operator"" _q_nV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_nV(long double l) { return voltage(l); } // uV -constexpr auto operator"" q_uV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_uV(long double l) { return voltage(l); } +constexpr auto operator"" _q_uV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_uV(long double l) { return voltage(l); } // mV -constexpr auto operator"" q_mV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_mV(long double l) { return voltage(l); } +constexpr auto operator"" _q_mV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_mV(long double l) { return voltage(l); } // cV -constexpr auto operator"" q_cV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_cV(long double l) { return voltage(l); } +constexpr auto operator"" _q_cV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_cV(long double l) { return voltage(l); } // dV -constexpr auto operator"" q_dV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_dV(long double l) { return voltage(l); } +constexpr auto operator"" _q_dV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_dV(long double l) { return voltage(l); } // daV -constexpr auto operator"" q_daV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_daV(long double l) { return voltage(l); } +constexpr auto operator"" _q_daV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_daV(long double l) { return voltage(l); } // hV -constexpr auto operator"" q_hV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_hV(long double l) { return voltage(l); } +constexpr auto operator"" _q_hV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_hV(long double l) { return voltage(l); } // kV -constexpr auto operator"" q_kV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_kV(long double l) { return voltage(l); } +constexpr auto operator"" _q_kV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_kV(long double l) { return voltage(l); } // MV -constexpr auto operator"" q_MV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_MV(long double l) { return voltage(l); } +constexpr auto operator"" _q_MV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_MV(long double l) { return voltage(l); } // GV -constexpr auto operator"" q_GV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_GV(long double l) { return voltage(l); } +constexpr auto operator"" _q_GV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_GV(long double l) { return voltage(l); } // TV -constexpr auto operator"" q_TV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_TV(long double l) { return voltage(l); } +constexpr auto operator"" _q_TV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_TV(long double l) { return voltage(l); } // PV -constexpr auto operator"" q_PV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_PV(long double l) { return voltage(l); } +constexpr auto operator"" _q_PV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_PV(long double l) { return voltage(l); } // EV -constexpr auto operator"" q_EV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_EV(long double l) { return voltage(l); } +constexpr auto operator"" _q_EV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_EV(long double l) { return voltage(l); } // ZV -constexpr auto operator"" q_ZV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_ZV(long double l) { return voltage(l); } +constexpr auto operator"" _q_ZV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_ZV(long double l) { return voltage(l); } // YV -constexpr auto operator"" q_YV(unsigned long long l) { return voltage(l); } -constexpr auto operator"" q_YV(long double l) { return voltage(l); } +constexpr auto operator"" _q_YV(unsigned long long l) { return voltage(l); } +constexpr auto operator"" _q_YV(long double l) { return voltage(l); } } // namespace literals diff --git a/src/include/units/physical/si/volume.h b/src/include/units/physical/si/volume.h index 6d60139c..7490a56b 100644 --- a/src/include/units/physical/si/volume.h +++ b/src/include/units/physical/si/volume.h @@ -80,172 +80,172 @@ using volume = quantity; inline namespace literals { // m3 -constexpr auto operator"" q_m3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_m3(long double l) { return volume(l); } +constexpr auto operator"" _q_m3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_m3(long double l) { return volume(l); } // ym3 -constexpr auto operator"" q_ym3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_ym3(long double l) { return volume(l); } +constexpr auto operator"" _q_ym3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_ym3(long double l) { return volume(l); } // zm3 -constexpr auto operator"" q_zm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_zm3(long double l) { return volume(l); } +constexpr auto operator"" _q_zm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_zm3(long double l) { return volume(l); } // am3 -constexpr auto operator"" q_am3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_am3(long double l) { return volume(l); } +constexpr auto operator"" _q_am3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_am3(long double l) { return volume(l); } // fm3 -constexpr auto operator"" q_fm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_fm3(long double l) { return volume(l); } +constexpr auto operator"" _q_fm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_fm3(long double l) { return volume(l); } // pm3 -constexpr auto operator"" q_pm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_pm3(long double l) { return volume(l); } +constexpr auto operator"" _q_pm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_pm3(long double l) { return volume(l); } // nm3 -constexpr auto operator"" q_nm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_nm3(long double l) { return volume(l); } +constexpr auto operator"" _q_nm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_nm3(long double l) { return volume(l); } // um3 -constexpr auto operator"" q_um3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_um3(long double l) { return volume(l); } +constexpr auto operator"" _q_um3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_um3(long double l) { return volume(l); } // mm3 -constexpr auto operator"" q_mm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_mm3(long double l) { return volume(l); } +constexpr auto operator"" _q_mm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_mm3(long double l) { return volume(l); } // cm3 -constexpr auto operator"" q_cm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_cm3(long double l) { return volume(l); } +constexpr auto operator"" _q_cm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_cm3(long double l) { return volume(l); } // dm3 -constexpr auto operator"" q_dm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_dm3(long double l) { return volume(l); } +constexpr auto operator"" _q_dm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_dm3(long double l) { return volume(l); } // dam3 -constexpr auto operator"" q_dam3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_dam3(long double l) { return volume(l); } +constexpr auto operator"" _q_dam3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_dam3(long double l) { return volume(l); } // hm3 -constexpr auto operator"" q_hm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_hm3(long double l) { return volume(l); } +constexpr auto operator"" _q_hm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_hm3(long double l) { return volume(l); } // km3 -constexpr auto operator"" q_km3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_km3(long double l) { return volume(l); } +constexpr auto operator"" _q_km3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_km3(long double l) { return volume(l); } // Mm3 -constexpr auto operator"" q_Mm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Mm3(long double l) { return volume(l); } +constexpr auto operator"" _q_Mm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Mm3(long double l) { return volume(l); } // Gm3 -constexpr auto operator"" q_Gm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Gm3(long double l) { return volume(l); } +constexpr auto operator"" _q_Gm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Gm3(long double l) { return volume(l); } // Tm3 -constexpr auto operator"" q_Tm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Tm3(long double l) { return volume(l); } +constexpr auto operator"" _q_Tm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Tm3(long double l) { return volume(l); } // Pm3 -constexpr auto operator"" q_Pm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Pm3(long double l) { return volume(l); } +constexpr auto operator"" _q_Pm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Pm3(long double l) { return volume(l); } // Em3 -constexpr auto operator"" q_Em3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Em3(long double l) { return volume(l); } +constexpr auto operator"" _q_Em3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Em3(long double l) { return volume(l); } // Zm3 -constexpr auto operator"" q_Zm3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Zm3(long double l) { return volume(l); } +constexpr auto operator"" _q_Zm3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Zm3(long double l) { return volume(l); } // Ym3 -constexpr auto operator"" q_Ym3(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Ym3(long double l) { return volume(l); } +constexpr auto operator"" _q_Ym3(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Ym3(long double l) { return volume(l); } // l -constexpr auto operator"" q_l(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_l(long double l) { return volume(l); } +constexpr auto operator"" _q_l(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_l(long double l) { return volume(l); } // yl -constexpr auto operator"" q_yl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_yl(long double l) { return volume(l); } +constexpr auto operator"" _q_yl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_yl(long double l) { return volume(l); } // zl -constexpr auto operator"" q_zl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_zl(long double l) { return volume(l); } +constexpr auto operator"" _q_zl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_zl(long double l) { return volume(l); } // al -constexpr auto operator"" q_al(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_al(long double l) { return volume(l); } +constexpr auto operator"" _q_al(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_al(long double l) { return volume(l); } // fl -constexpr auto operator"" q_fl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_fl(long double l) { return volume(l); } +constexpr auto operator"" _q_fl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_fl(long double l) { return volume(l); } // pl -constexpr auto operator"" q_pl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_pl(long double l) { return volume(l); } +constexpr auto operator"" _q_pl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_pl(long double l) { return volume(l); } // nl -constexpr auto operator"" q_nl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_nl(long double l) { return volume(l); } +constexpr auto operator"" _q_nl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_nl(long double l) { return volume(l); } // ul -constexpr auto operator"" q_ul(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_ul(long double l) { return volume(l); } +constexpr auto operator"" _q_ul(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_ul(long double l) { return volume(l); } // ml -constexpr auto operator"" q_ml(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_ml(long double l) { return volume(l); } +constexpr auto operator"" _q_ml(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_ml(long double l) { return volume(l); } // cl -constexpr auto operator"" q_cl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_cl(long double l) { return volume(l); } +constexpr auto operator"" _q_cl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_cl(long double l) { return volume(l); } // dl -constexpr auto operator"" q_dl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_dl(long double l) { return volume(l); } +constexpr auto operator"" _q_dl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_dl(long double l) { return volume(l); } // dal -constexpr auto operator"" q_dal(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_dal(long double l) { return volume(l); } +constexpr auto operator"" _q_dal(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_dal(long double l) { return volume(l); } // hl -constexpr auto operator"" q_hl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_hl(long double l) { return volume(l); } +constexpr auto operator"" _q_hl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_hl(long double l) { return volume(l); } // kl -constexpr auto operator"" q_kl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_kl(long double l) { return volume(l); } +constexpr auto operator"" _q_kl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_kl(long double l) { return volume(l); } // Ml -constexpr auto operator"" q_Ml(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Ml(long double l) { return volume(l); } +constexpr auto operator"" _q_Ml(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Ml(long double l) { return volume(l); } // Gl -constexpr auto operator"" q_Gl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Gl(long double l) { return volume(l); } +constexpr auto operator"" _q_Gl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Gl(long double l) { return volume(l); } // Tl -constexpr auto operator"" q_Tl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Tl(long double l) { return volume(l); } +constexpr auto operator"" _q_Tl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Tl(long double l) { return volume(l); } // Pl -constexpr auto operator"" q_Pl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Pl(long double l) { return volume(l); } +constexpr auto operator"" _q_Pl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Pl(long double l) { return volume(l); } // El -constexpr auto operator"" q_El(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_El(long double l) { return volume(l); } +constexpr auto operator"" _q_El(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_El(long double l) { return volume(l); } // Zl -constexpr auto operator"" q_Zl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Zl(long double l) { return volume(l); } +constexpr auto operator"" _q_Zl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Zl(long double l) { return volume(l); } // Yl -constexpr auto operator"" q_Yl(unsigned long long l) { return volume(l); } -constexpr auto operator"" q_Yl(long double l) { return volume(l); } +constexpr auto operator"" _q_Yl(unsigned long long l) { return volume(l); } +constexpr auto operator"" _q_Yl(long double l) { return volume(l); } } // namespace literals diff --git a/src/include/units/physical/typographic/length.h b/src/include/units/physical/typographic/length.h index 0d4080a8..9bd40b6c 100644 --- a/src/include/units/physical/typographic/length.h +++ b/src/include/units/physical/typographic/length.h @@ -36,20 +36,20 @@ struct point_prn : named_scaled_unit(l); } -constexpr auto operator"" q_pica_comp(long double l) { return si::length(l); } +constexpr auto operator"" _q_pica_comp(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_pica_comp(long double l) { return si::length(l); } // pica prn -constexpr auto operator"" q_pica_prn(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_pica_prn(long double l) { return si::length(l); } +constexpr auto operator"" _q_pica_prn(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_pica_prn(long double l) { return si::length(l); } // point comp -constexpr auto operator"" q_point_comp(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_point_comp(long double l) { return si::length(l); } +constexpr auto operator"" _q_point_comp(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_point_comp(long double l) { return si::length(l); } // point prn -constexpr auto operator"" q_point_prn(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_point_prn(long double l) { return si::length(l); } +constexpr auto operator"" _q_point_prn(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_point_prn(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/physical/us/length.h b/src/include/units/physical/us/length.h index 860e3cbf..54f97ef9 100644 --- a/src/include/units/physical/us/length.h +++ b/src/include/units/physical/us/length.h @@ -40,16 +40,16 @@ struct mile : named_scaled_unit(l); } -constexpr auto operator"" q_ft_us(long double l) { return si::length(l); } +constexpr auto operator"" _q_ft_us(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_ft_us(long double l) { return si::length(l); } // fathom -constexpr auto operator"" q_fathom_us(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_fathom_us(long double l) { return si::length(l); } +constexpr auto operator"" _q_fathom_us(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_fathom_us(long double l) { return si::length(l); } // ft -constexpr auto operator"" q_mi_us(unsigned long long l) { return si::length(l); } -constexpr auto operator"" q_mi_us(long double l) { return si::length(l); } +constexpr auto operator"" _q_mi_us(unsigned long long l) { return si::length(l); } +constexpr auto operator"" _q_mi_us(long double l) { return si::length(l); } } // namespace literals diff --git a/src/include/units/quantity_cast.h b/src/include/units/quantity_cast.h index 7700f05b..3f66b91c 100644 --- a/src/include/units/quantity_cast.h +++ b/src/include/units/quantity_cast.h @@ -308,7 +308,7 @@ constexpr ratio cast_ratio(const Q1& from, const Q2& to) * * This cast gets the target quantity type to cast to. For example: * - * auto q1 = units::quantity_cast>(1q_ms); + * auto q1 = units::quantity_cast>(1_q_ms); * * @tparam To a target quantity type to cast to */ @@ -332,7 +332,7 @@ template * * This cast gets only the target dimension to cast to. For example: * - * auto q1 = units::quantity_cast(200q_Gal); + * auto q1 = units::quantity_cast(200_q_Gal); * * @tparam ToD a dimension type to use for a target quantity */ @@ -351,7 +351,7 @@ template * * This cast gets only the target unit to cast to. For example: * - * auto q1 = units::quantity_cast(1q_ms); + * auto q1 = units::quantity_cast(1_q_ms); * * @tparam ToU a unit type to use for a target quantity */ @@ -370,7 +370,7 @@ template * * This cast gets only representation to cast to. For example: * - * auto q1 = units::quantity_cast(1q_ms); + * auto q1 = units::quantity_cast(1_q_ms); * * @tparam ToRep a representation type to use for a target quantity */ @@ -388,11 +388,11 @@ template * * This cast gets the target quantity point type to cast to or anything that works for quantity_cast. For example: * - * auto q1 = units::quantity_point_cast(quantity_point{1q_ms}); - * auto q1 = units::quantity_point_cast>(quantity_point{1q_ms}); - * auto q1 = units::quantity_point_cast(quantity_point{200q_Gal}); - * auto q1 = units::quantity_point_cast(quantity_point{1q_ms}); - * auto q1 = units::quantity_point_cast(quantity_point{1q_ms}); + * auto q1 = units::quantity_point_cast(quantity_point{1_q_ms}); + * auto q1 = units::quantity_point_cast>(quantity_point{1_q_ms}); + * auto q1 = units::quantity_point_cast(quantity_point{200_q_Gal}); + * auto q1 = units::quantity_point_cast(quantity_point{1_q_ms}); + * auto q1 = units::quantity_point_cast(quantity_point{1_q_ms}); * * @tparam CastSpec a target quantity point type to cast to or anything that works for quantity_cast */ diff --git a/test/unit_test/runtime/digital_info_test.cpp b/test/unit_test/runtime/digital_info_test.cpp index 09526c1e..f043e1b6 100644 --- a/test/unit_test/runtime/digital_info_test.cpp +++ b/test/unit_test/runtime/digital_info_test.cpp @@ -34,25 +34,25 @@ TEST_CASE("operator<< on a data quantity", "[text][ostream]") { SECTION("named unit") { - stream << 64q_B; + stream << 64_q_B; REQUIRE(stream.str() == "64 B"); } SECTION("prefixed coherent unit") { - stream << 256q_Kib; + stream << 256_q_Kib; REQUIRE(stream.str() == "256 Kib"); } SECTION("prefixed non-coherent unit") { - stream << 1024q_KiB; + stream << 1024_q_KiB; REQUIRE(stream.str() == "1024 KiB"); } SECTION("other unit matching prefix") { - stream << 8q_Kib * 8q_Kib / 2q_b; + stream << 8_q_Kib * 8_q_Kib / 2_q_b; REQUIRE(stream.str() == "32 Mib"); } } diff --git a/test/unit_test/runtime/distribution_test.cpp b/test/unit_test/runtime/distribution_test.cpp index 101d569c..c391f76c 100644 --- a/test/unit_test/runtime/distribution_test.cpp +++ b/test/unit_test/runtime/distribution_test.cpp @@ -498,7 +498,7 @@ TEST_CASE("piecewise_constant_distribution") using q = length; std::vector intervals_rep_vec = {1.0, 2.0, 3.0}; - std::vector intervals_qty_vec = {1.0q_m, 2.0q_m, 3.0q_m}; + std::vector intervals_qty_vec = {1.0_q_m, 2.0_q_m, 3.0_q_m}; SECTION("default") { @@ -515,7 +515,7 @@ TEST_CASE("piecewise_constant_distribution") SECTION ("parametrized_input_it") { constexpr std::array intervals_rep = {1.0, 2.0, 3.0}; - constexpr std::array intervals_qty = {1.0q_m, 2.0q_m, 3.0q_m}; + constexpr std::array intervals_qty = {1.0_q_m, 2.0_q_m, 3.0_q_m}; constexpr std::array weights = {1.0, 2.0, 3.0}; auto stl_dist = std::piecewise_constant_distribution(intervals_rep.cbegin(), intervals_rep.cend(), weights.cbegin()); @@ -528,7 +528,7 @@ TEST_CASE("piecewise_constant_distribution") SECTION ("parametrized_initializer_list") { std::initializer_list intervals_rep = {1.0, 2.0, 3.0}; - std::initializer_list intervals_qty = {1.0q_m, 2.0q_m, 3.0q_m}; + std::initializer_list intervals_qty = {1.0_q_m, 2.0_q_m, 3.0_q_m}; auto stl_dist = std::piecewise_constant_distribution(intervals_rep, [](rep val) { return val; }); auto units_dist = units::piecewise_constant_distribution(intervals_qty, [](q qty) { return qty.count(); }); @@ -540,7 +540,7 @@ TEST_CASE("piecewise_constant_distribution") SECTION ("parametrized_range") { constexpr std::size_t nw = 2; constexpr rep xmin_rep = 1.0, xmax_rep = 3.0; - constexpr q xmin_qty = 1.0q_m, xmax_qty = 3.0q_m; + constexpr q xmin_qty = 1.0_q_m, xmax_qty = 3.0_q_m; auto stl_dist = std::piecewise_constant_distribution(nw, xmin_rep, xmax_rep, [](rep val) { return val; }); auto units_dist = units::piecewise_constant_distribution(nw, xmin_qty, xmax_qty, [](q qty) { return qty.count(); }); @@ -556,7 +556,7 @@ TEST_CASE("piecewise_linear_distribution") using q = length; std::vector intervals_rep_vec = {1.0, 2.0, 3.0}; - std::vector intervals_qty_vec = {1.0q_m, 2.0q_m, 3.0q_m}; + std::vector intervals_qty_vec = {1.0_q_m, 2.0_q_m, 3.0_q_m}; SECTION("default") { @@ -573,7 +573,7 @@ TEST_CASE("piecewise_linear_distribution") SECTION ("parametrized_input_it") { constexpr std::array intervals_rep = {1.0, 2.0, 3.0}; - constexpr std::array intervals_qty = {1.0q_m, 2.0q_m, 3.0q_m}; + constexpr std::array intervals_qty = {1.0_q_m, 2.0_q_m, 3.0_q_m}; constexpr std::array weights = {1.0, 2.0, 3.0}; auto stl_dist = std::piecewise_linear_distribution(intervals_rep.cbegin(), intervals_rep.cend(), weights.cbegin()); @@ -586,7 +586,7 @@ TEST_CASE("piecewise_linear_distribution") SECTION ("parametrized_initializer_list") { std::initializer_list intervals_rep = {1.0, 2.0, 3.0}; - std::initializer_list intervals_qty = {1.0q_m, 2.0q_m, 3.0q_m}; + std::initializer_list intervals_qty = {1.0_q_m, 2.0_q_m, 3.0_q_m}; auto stl_dist = std::piecewise_linear_distribution(intervals_rep, [](rep val) { return val; }); auto units_dist = units::piecewise_linear_distribution(intervals_qty, [](q qty) { return qty.count(); }); @@ -598,7 +598,7 @@ TEST_CASE("piecewise_linear_distribution") SECTION ("parametrized_range") { constexpr std::size_t nw = 2; constexpr rep xmin_rep = 1.0, xmax_rep = 3.0; - constexpr q xmin_qty = 1.0q_m, xmax_qty = 3.0q_m; + constexpr q xmin_qty = 1.0_q_m, xmax_qty = 3.0_q_m; auto stl_dist = std::piecewise_linear_distribution(nw, xmin_rep, xmax_rep, [](rep val) { return val; }); auto units_dist = units::piecewise_linear_distribution(nw, xmin_qty, xmax_qty, [](q qty) { return qty.count(); }); diff --git a/test/unit_test/runtime/fmt_test.cpp b/test/unit_test/runtime/fmt_test.cpp index 01502f6a..16f6a01f 100644 --- a/test/unit_test/runtime/fmt_test.cpp +++ b/test/unit_test/runtime/fmt_test.cpp @@ -49,7 +49,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") { SECTION("integral representation") { - const auto q = 60q_W; + const auto q = 60_q_W; os << q; SECTION("iostream") @@ -70,7 +70,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("floating-point representation") { - const auto q = 1023.5q_Pa; + const auto q = 1023.5_q_Pa; os << q; SECTION("iostream") @@ -92,7 +92,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("quantity with a predefined prefixed unit") { - const auto q = 125q_us; + const auto q = 125_q_us; os << q; SECTION("iostream") @@ -158,7 +158,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("quantity with an alias unit") { - const auto q = 2q_l; + const auto q = 2_q_l; os << q; SECTION("iostream") @@ -179,7 +179,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("quantity with a prefixed alias unit") { - const auto q = 2q_ml; + const auto q = 2_q_ml; os << q; SECTION("iostream") @@ -204,7 +204,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") { SECTION("acceleration") { - const auto q = 20q_m / 2q_s / 1q_s; + const auto q = 20_q_m / 2_q_s / 1_q_s; os << q; SECTION("iostream") @@ -225,7 +225,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("volume") { - const auto q = 2q_m * 1q_m * 1q_m; + const auto q = 2_q_m * 1_q_m * 1_q_m; os << q; SECTION("iostream") @@ -246,7 +246,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("surface tension") { - const auto q = 20q_N / 2q_m; + const auto q = 20_q_N / 2_q_m; os << q; SECTION("iostream") @@ -270,7 +270,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") { SECTION("speed") { - const auto q = 20q_km / 2q_h; + const auto q = 20_q_km / 2_q_h; os << q; SECTION("iostream") @@ -317,7 +317,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") { SECTION("unit::ratio as an SI prefix for a dimension with a special symbol") { - const auto q = 4q_N * 2q_cm; + const auto q = 4_q_N * 2_q_cm; os << q; SECTION("iostream") @@ -338,7 +338,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio for a dimension without a special symbol") { - const auto q = 2q_um * 2q_cm * 2q_cm; + const auto q = 2_q_um * 2_q_cm * 2_q_cm; os << q; SECTION("iostream") @@ -359,7 +359,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio::num != 1 && unit::ratio::den == 1") { - const auto q = 4 * 2q_min / (2q_s * 2q_s); + const auto q = 4 * 2_q_min / (2_q_s * 2_q_s); os << q; SECTION("iostream") @@ -380,7 +380,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio::num == 1 && unit::ratio::den != 1") { - const auto q = 20q_J / 2q_min; + const auto q = 20_q_J / 2_q_min; os << q; SECTION("iostream") @@ -401,7 +401,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio::num != 1 && unit::ratio::den != 1") { - const auto q = 60q_kJ / 2q_min; + const auto q = 60_q_kJ / 2_q_min; os << q; SECTION("iostream") @@ -425,7 +425,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") { SECTION("one with ratio == 1") { - const auto q = 4q_m / 2q_m; + const auto q = 4_q_m / 2_q_m; os << q; SECTION("iostream") @@ -446,7 +446,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("one with ratio.exp != 0") { - const auto q = 4q_km / 2q_m; + const auto q = 4_q_km / 2_q_m; os << q; SECTION("iostream") @@ -467,7 +467,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("percents") { - const auto q = quantity_cast(15.q_m / 100.q_m); + const auto q = quantity_cast(15._q_m / 100._q_m); os << q; SECTION("iostream") @@ -493,7 +493,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") { SECTION("SI base units") { - const auto q = 2q_s * 2q_m * 2q_kg; + const auto q = 2_q_s * 2_q_m * 2_q_kg; os << q; SECTION("iostream") @@ -514,7 +514,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("CGS base units") { - const auto q = 2.q_s * cgs::length(2) * cgs::mass(2); + const auto q = 2._q_s * cgs::length(2) * cgs::mass(2); os << q; SECTION("iostream") @@ -536,7 +536,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio as an SI prefix") { - const auto q = 4q_km * 2q_s; + const auto q = 4_q_km * 2_q_s; os << q; SECTION("iostream") @@ -557,7 +557,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio::num != 1 && unit::ratio::den == 1") { - const auto q = 4q_kg * 2q_min / (2q_s * 2q_s); + const auto q = 4_q_kg * 2_q_min / (2_q_s * 2_q_s); os << q; SECTION("iostream") @@ -578,7 +578,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio::num == 1 && unit::ratio::den != 1") { - const auto q = 20q_kg / 2q_min; + const auto q = 20_q_kg / 2_q_min; os << q; SECTION("iostream") @@ -599,7 +599,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("CGS base units") { - const auto q = 2.q_s * cgs::length(2) * cgs::mass(2); + const auto q = 2._q_s * cgs::length(2) * cgs::mass(2); os << q; SECTION("iostream") @@ -620,7 +620,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("unit::ratio::num != 1 && unit::ratio::den != 1") { - const auto q = 60q_min / 2q_km; + const auto q = 60_q_min / 2_q_km; os << q; SECTION("iostream") @@ -641,7 +641,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("exponent::num == 1 && exponent::den == 1") { - const auto q = 4q_m * 2q_s; + const auto q = 4_q_m * 2_q_s; os << q; SECTION("iostream") @@ -662,7 +662,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("exponent::num == 2 && exponent::den == 1 for positive exponent") { - const auto q = 4q_m * 2q_s * 2q_s; + const auto q = 4_q_m * 2_q_s * 2_q_s; os << q; SECTION("iostream") @@ -683,7 +683,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("exponent::num == 2 && exponent::den == 1 for negative exponent (first dimension)") { - const auto q = 8q_s / 2q_m / 2q_m; + const auto q = 8_q_s / 2_q_m / 2_q_m; os << q; SECTION("iostream") @@ -704,7 +704,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("exponent::num == 2 && exponent::den == 1 for negative exponent (not first dimension)") { - const auto q = 8q_m / 2q_kg / 2q_kg; + const auto q = 8_q_m / 2_q_kg / 2_q_kg; os << q; SECTION("iostream") @@ -725,7 +725,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("fractional positive exponent") { - const auto q = sqrt(9q_m); + const auto q = sqrt(9_q_m); os << q; SECTION("iostream") @@ -746,7 +746,7 @@ TEST_CASE("operator<< on a quantity", "[text][ostream][fmt]") SECTION("fractional negative exponent") { - const auto q = sqrt(9 / 1q_m); + const auto q = sqrt(9 / 1_q_m); os << q; SECTION("iostream") @@ -773,12 +773,12 @@ TEST_CASE("format string with only %Q should print quantity value only", "[text] { SECTION("positive value") { - CHECK(fmt::format("{:%Q}", 123q_km_per_h) == "123"); + CHECK(fmt::format("{:%Q}", 123_q_km_per_h) == "123"); } SECTION("negative value") { - CHECK(fmt::format("{:%Q}", 5q_m - 10q_m) == "-5"); + CHECK(fmt::format("{:%Q}", 5_q_m - 10_q_m) == "-5"); } } @@ -786,12 +786,12 @@ TEST_CASE("format string with only %Q should print quantity value only", "[text] { SECTION("positive value") { - CHECK(fmt::format("{:%Q}", 221.q_km / 2q_h) == "110.5"); + CHECK(fmt::format("{:%Q}", 221._q_km / 2_q_h) == "110.5"); } SECTION("negative value") { - CHECK(fmt::format("{:%Q}", 3.14q_m - 10q_m) == "-6.86"); + CHECK(fmt::format("{:%Q}", 3.14_q_m - 10_q_m) == "-6.86"); } SECTION("nan") @@ -815,24 +815,24 @@ TEST_CASE("format string with only %q should print quantity unit symbol only", " { SECTION("standard format for a unit without Unicode symbols") { - CHECK(fmt::format("{:%q}", 123q_km_per_h) == "km/h"); + CHECK(fmt::format("{:%q}", 123_q_km_per_h) == "km/h"); } SECTION("ASCII format for a unit without Unicode symbols") { - CHECK(fmt::format("{:%Aq}", 123q_km_per_h) == "km/h"); + CHECK(fmt::format("{:%Aq}", 123_q_km_per_h) == "km/h"); } SECTION("standard format for a unit with Unicode symbols") { SECTION("Unicode signs in a unit symbol") { - CHECK(fmt::format("{:%q}", 123q_kR) == "kΩ"); + CHECK(fmt::format("{:%q}", 123_q_kR) == "kΩ"); } SECTION("Unicode signs in a unit symbol prefix") { - CHECK(fmt::format("{:%q}", 123q_uV) == "µV"); + CHECK(fmt::format("{:%q}", 123_q_uV) == "µV"); } } @@ -840,12 +840,12 @@ TEST_CASE("format string with only %q should print quantity unit symbol only", " { SECTION("Unicode signs in a unit symbol") { - CHECK(fmt::format("{:%Aq}", 123q_kR) == "kohm"); + CHECK(fmt::format("{:%Aq}", 123_q_kR) == "kohm"); } SECTION("Unicode signs in a unit symbol prefix") { - CHECK(fmt::format("{:%Aq}", 123q_uV) == "uV"); + CHECK(fmt::format("{:%Aq}", 123_q_uV) == "uV"); } } } @@ -854,32 +854,32 @@ TEST_CASE("%q and %Q can be put anywhere in a format string", "[text][fmt]") { SECTION("no space") { - CHECK(fmt::format("{:%Q%q}", 123q_km_per_h) == "123km/h"); + CHECK(fmt::format("{:%Q%q}", 123_q_km_per_h) == "123km/h"); } SECTION("separator") { - CHECK(fmt::format("{:%Q###%q}", 123q_km_per_h) == "123###km/h"); + CHECK(fmt::format("{:%Q###%q}", 123_q_km_per_h) == "123###km/h"); } SECTION("opposite order") { - CHECK(fmt::format("{:%q %Q}", 123q_km_per_h) == "km/h 123"); + CHECK(fmt::format("{:%q %Q}", 123_q_km_per_h) == "km/h 123"); } SECTION("tabulator") { - CHECK(fmt::format("{:%Q%t%q}", 123q_km_per_h) == "123\tkm/h"); + CHECK(fmt::format("{:%Q%t%q}", 123_q_km_per_h) == "123\tkm/h"); } SECTION("new line") { - CHECK(fmt::format("{:%Q%n%q}", 123q_km_per_h) == "123\nkm/h"); + CHECK(fmt::format("{:%Q%n%q}", 123_q_km_per_h) == "123\nkm/h"); } SECTION("% sign") { - CHECK(fmt::format("{:%Q%% %q}", 123q_km_per_h) == "123% km/h"); + CHECK(fmt::format("{:%Q%% %q}", 123_q_km_per_h) == "123% km/h"); } } @@ -891,87 +891,87 @@ TEST_CASE("fill and align specification", "[text][fmt][ostream]") SECTION("width = 10") { - os << "|" << std::setw(10) << 123q_m << "|"; + os << "|" << std::setw(10) << 123_q_m << "|"; CHECK(os.str() == "| 123 m|"); } SECTION("width = 10, align = right") { - os << "|" << std::setw(10) << std::right << 123q_m << "|"; + os << "|" << std::setw(10) << std::right << 123_q_m << "|"; CHECK(os.str() == "| 123 m|"); } SECTION("width = 10, align = left") { - os << "|" << std::setw(10) << std::left << 123q_m << "|"; + os << "|" << std::setw(10) << std::left << 123_q_m << "|"; CHECK(os.str() == "|123 m |"); } SECTION("width = 10, fill = *") { - os << "|" << std::setw(10) << std::setfill('*') << 123q_m << "|"; + os << "|" << std::setw(10) << std::setfill('*') << 123_q_m << "|"; CHECK(os.str() == "|*****123 m|"); } SECTION("width = 10, fill = *, align = right") { - os << "|" << std::setw(10) << std::setfill('*') << std::right << 123q_m << "|"; + os << "|" << std::setw(10) << std::setfill('*') << std::right << 123_q_m << "|"; CHECK(os.str() == "|*****123 m|"); } SECTION("width = 10, fill = *, align = left") { - os << "|" << std::setw(10) << std::setfill('*') << std::left << 123q_m << "|"; + os << "|" << std::setw(10) << std::setfill('*') << std::left << 123_q_m << "|"; CHECK(os.str() == "|123 m*****|"); } } SECTION("default format {} on a quantity") { - CHECK(fmt::format("|{:0}|", 123q_m) == "|123 m|"); - CHECK(fmt::format("|{:10}|", 123q_m) == "| 123 m|"); - CHECK(fmt::format("|{:<10}|", 123q_m) == "|123 m |"); - CHECK(fmt::format("|{:>10}|", 123q_m) == "| 123 m|"); - CHECK(fmt::format("|{:^10}|", 123q_m) == "| 123 m |"); - CHECK(fmt::format("|{:*<10}|", 123q_m) == "|123 m*****|"); - CHECK(fmt::format("|{:*>10}|", 123q_m) == "|*****123 m|"); - CHECK(fmt::format("|{:*^10}|", 123q_m) == "|**123 m***|"); + CHECK(fmt::format("|{:0}|", 123_q_m) == "|123 m|"); + CHECK(fmt::format("|{:10}|", 123_q_m) == "| 123 m|"); + CHECK(fmt::format("|{:<10}|", 123_q_m) == "|123 m |"); + CHECK(fmt::format("|{:>10}|", 123_q_m) == "| 123 m|"); + CHECK(fmt::format("|{:^10}|", 123_q_m) == "| 123 m |"); + CHECK(fmt::format("|{:*<10}|", 123_q_m) == "|123 m*****|"); + CHECK(fmt::format("|{:*>10}|", 123_q_m) == "|*****123 m|"); + CHECK(fmt::format("|{:*^10}|", 123_q_m) == "|**123 m***|"); } SECTION("full format {:%Q %q} on a quantity") { - CHECK(fmt::format("|{:0%Q%q}|", 123q_m) == "|123m|"); - CHECK(fmt::format("|{:10%Q%q}|", 123q_m) == "| 123m|"); - CHECK(fmt::format("|{:<10%Q%q}|", 123q_m) == "|123m |"); - CHECK(fmt::format("|{:>10%Q%q}|", 123q_m) == "| 123m|"); - CHECK(fmt::format("|{:^10%Q%q}|", 123q_m) == "| 123m |"); - CHECK(fmt::format("|{:*<10%Q%q}|", 123q_m) == "|123m******|"); - CHECK(fmt::format("|{:*>10%Q%q}|", 123q_m) == "|******123m|"); - CHECK(fmt::format("|{:*^10%Q%q}|", 123q_m) == "|***123m***|"); + CHECK(fmt::format("|{:0%Q%q}|", 123_q_m) == "|123m|"); + CHECK(fmt::format("|{:10%Q%q}|", 123_q_m) == "| 123m|"); + CHECK(fmt::format("|{:<10%Q%q}|", 123_q_m) == "|123m |"); + CHECK(fmt::format("|{:>10%Q%q}|", 123_q_m) == "| 123m|"); + CHECK(fmt::format("|{:^10%Q%q}|", 123_q_m) == "| 123m |"); + CHECK(fmt::format("|{:*<10%Q%q}|", 123_q_m) == "|123m******|"); + CHECK(fmt::format("|{:*>10%Q%q}|", 123_q_m) == "|******123m|"); + CHECK(fmt::format("|{:*^10%Q%q}|", 123_q_m) == "|***123m***|"); } SECTION("value only format {:%Q} on a quantity") { - CHECK(fmt::format("|{:0%Q}|", 123q_m) == "|123|"); - CHECK(fmt::format("|{:10%Q}|", 123q_m) == "| 123|"); - CHECK(fmt::format("|{:<10%Q}|", 123q_m) == "|123 |"); - CHECK(fmt::format("|{:>10%Q}|", 123q_m) == "| 123|"); - CHECK(fmt::format("|{:^10%Q}|", 123q_m) == "| 123 |"); - CHECK(fmt::format("|{:*<10%Q}|", 123q_m) == "|123*******|"); - CHECK(fmt::format("|{:*>10%Q}|", 123q_m) == "|*******123|"); - CHECK(fmt::format("|{:*^10%Q}|", 123q_m) == "|***123****|"); + CHECK(fmt::format("|{:0%Q}|", 123_q_m) == "|123|"); + CHECK(fmt::format("|{:10%Q}|", 123_q_m) == "| 123|"); + CHECK(fmt::format("|{:<10%Q}|", 123_q_m) == "|123 |"); + CHECK(fmt::format("|{:>10%Q}|", 123_q_m) == "| 123|"); + CHECK(fmt::format("|{:^10%Q}|", 123_q_m) == "| 123 |"); + CHECK(fmt::format("|{:*<10%Q}|", 123_q_m) == "|123*******|"); + CHECK(fmt::format("|{:*>10%Q}|", 123_q_m) == "|*******123|"); + CHECK(fmt::format("|{:*^10%Q}|", 123_q_m) == "|***123****|"); } SECTION("symbol only format {:%q} on a quantity") { - CHECK(fmt::format("|{:0%q}|", 123q_m) == "|m|"); - CHECK(fmt::format("|{:10%q}|", 123q_m) == "|m |"); - CHECK(fmt::format("|{:<10%q}|", 123q_m) == "|m |"); - CHECK(fmt::format("|{:>10%q}|", 123q_m) == "| m|"); - CHECK(fmt::format("|{:^10%q}|", 123q_m) == "| m |"); - CHECK(fmt::format("|{:*<10%q}|", 123q_m) == "|m*********|"); - CHECK(fmt::format("|{:*>10%q}|", 123q_m) == "|*********m|"); - CHECK(fmt::format("|{:*^10%q}|", 123q_m) == "|****m*****|"); + CHECK(fmt::format("|{:0%q}|", 123_q_m) == "|m|"); + CHECK(fmt::format("|{:10%q}|", 123_q_m) == "|m |"); + CHECK(fmt::format("|{:<10%q}|", 123_q_m) == "|m |"); + CHECK(fmt::format("|{:>10%q}|", 123_q_m) == "| m|"); + CHECK(fmt::format("|{:^10%q}|", 123_q_m) == "| m |"); + CHECK(fmt::format("|{:*<10%q}|", 123_q_m) == "|m*********|"); + CHECK(fmt::format("|{:*>10%q}|", 123_q_m) == "|*********m|"); + CHECK(fmt::format("|{:*^10%q}|", 123_q_m) == "|****m*****|"); } } @@ -982,16 +982,16 @@ TEST_CASE("sign specification", "[text][fmt]") SECTION("full format {:%Q %q} on a quantity") { - CHECK(fmt::format("{0:%Q%q},{0:%+Q%q},{0:%-Q%q},{0:% Q%q}", 1q_m) == "1m,+1m,1m, 1m"); - CHECK(fmt::format("{0:%Q%q},{0:%+Q%q},{0:%-Q%q},{0:% Q%q}", -1q_m) == "-1m,-1m,-1m,-1m"); + CHECK(fmt::format("{0:%Q%q},{0:%+Q%q},{0:%-Q%q},{0:% Q%q}", 1_q_m) == "1m,+1m,1m, 1m"); + CHECK(fmt::format("{0:%Q%q},{0:%+Q%q},{0:%-Q%q},{0:% Q%q}", -1_q_m) == "-1m,-1m,-1m,-1m"); CHECK(fmt::format("{0:%Q%q},{0:%+Q%q},{0:%-Q%q},{0:% Q%q}", inf) == "infm,+infm,infm, infm"); CHECK(fmt::format("{0:%Q%q},{0:%+Q%q},{0:%-Q%q},{0:% Q%q}", nan) == "nanm,+nanm,nanm, nanm"); } SECTION("value only format {:%Q} on a quantity") { - CHECK(fmt::format("{0:%Q},{0:%+Q},{0:%-Q},{0:% Q}", 1q_m) == "1,+1,1, 1"); - CHECK(fmt::format("{0:%Q},{0:%+Q},{0:%-Q},{0:% Q}", -1q_m) == "-1,-1,-1,-1"); + CHECK(fmt::format("{0:%Q},{0:%+Q},{0:%-Q},{0:% Q}", 1_q_m) == "1,+1,1, 1"); + CHECK(fmt::format("{0:%Q},{0:%+Q},{0:%-Q},{0:% Q}", -1_q_m) == "-1,-1,-1,-1"); CHECK(fmt::format("{0:%Q},{0:%+Q},{0:%-Q},{0:% Q}", inf) == "inf,+inf,inf, inf"); CHECK(fmt::format("{0:%Q},{0:%+Q},{0:%-Q},{0:% Q}", nan) == "nan,+nan,nan, nan"); } @@ -1001,32 +1001,32 @@ TEST_CASE("precision specification", "[text][fmt]") { SECTION("full format {:%Q %q} on a quantity") { - CHECK(fmt::format("{:%.0Q %q}", 1.2345q_m) == "1 m"); - CHECK(fmt::format("{:%.1Q %q}", 1.2345q_m) == "1.2 m"); - CHECK(fmt::format("{:%.2Q %q}", 1.2345q_m) == "1.23 m"); + CHECK(fmt::format("{:%.0Q %q}", 1.2345_q_m) == "1 m"); + CHECK(fmt::format("{:%.1Q %q}", 1.2345_q_m) == "1.2 m"); + CHECK(fmt::format("{:%.2Q %q}", 1.2345_q_m) == "1.23 m"); #ifdef COMP_MSVC - CHECK(fmt::format("{:%.3Q %q}", 1.2345q_m) == "1.234 m"); + CHECK(fmt::format("{:%.3Q %q}", 1.2345_q_m) == "1.234 m"); #else - CHECK(fmt::format("{:%.3Q %q}", 1.2345q_m) == "1.235 m"); + CHECK(fmt::format("{:%.3Q %q}", 1.2345_q_m) == "1.235 m"); #endif - CHECK(fmt::format("{:%.4Q %q}", 1.2345q_m) == "1.2345 m"); - CHECK(fmt::format("{:%.5Q %q}", 1.2345q_m) == "1.23450 m"); - CHECK(fmt::format("{:%.10Q %q}", 1.2345q_m) == "1.2345000000 m"); + CHECK(fmt::format("{:%.4Q %q}", 1.2345_q_m) == "1.2345 m"); + CHECK(fmt::format("{:%.5Q %q}", 1.2345_q_m) == "1.23450 m"); + CHECK(fmt::format("{:%.10Q %q}", 1.2345_q_m) == "1.2345000000 m"); } SECTION("value only format {:%Q} on a quantity") { - CHECK(fmt::format("{:%.0Q}", 1.2345q_m) == "1"); - CHECK(fmt::format("{:%.1Q}", 1.2345q_m) == "1.2"); - CHECK(fmt::format("{:%.2Q}", 1.2345q_m) == "1.23"); + CHECK(fmt::format("{:%.0Q}", 1.2345_q_m) == "1"); + CHECK(fmt::format("{:%.1Q}", 1.2345_q_m) == "1.2"); + CHECK(fmt::format("{:%.2Q}", 1.2345_q_m) == "1.23"); #ifdef COMP_MSVC - CHECK(fmt::format("{:%.3Q}", 1.2345q_m) == "1.234"); + CHECK(fmt::format("{:%.3Q}", 1.2345_q_m) == "1.234"); #else - CHECK(fmt::format("{:%.3Q}", 1.2345q_m) == "1.235"); + CHECK(fmt::format("{:%.3Q}", 1.2345_q_m) == "1.235"); #endif - CHECK(fmt::format("{:%.4Q}", 1.2345q_m) == "1.2345"); - CHECK(fmt::format("{:%.5Q}", 1.2345q_m) == "1.23450"); - CHECK(fmt::format("{:%.10Q}", 1.2345q_m) == "1.2345000000"); + CHECK(fmt::format("{:%.4Q}", 1.2345_q_m) == "1.2345"); + CHECK(fmt::format("{:%.5Q}", 1.2345_q_m) == "1.23450"); + CHECK(fmt::format("{:%.10Q}", 1.2345_q_m) == "1.2345000000"); } } @@ -1034,12 +1034,12 @@ TEST_CASE("precision specification for integral representation should throw", "[ { SECTION("full format {:%Q %q} on a quantity") { - REQUIRE_THROWS_MATCHES(fmt::format("{:%.1Q %q}", 1q_m), fmt::format_error, Message("precision not allowed for integral quantity representation")); + REQUIRE_THROWS_MATCHES(fmt::format("{:%.1Q %q}", 1_q_m), fmt::format_error, Message("precision not allowed for integral quantity representation")); } SECTION("value only format {:%Q} on a quantity") { - REQUIRE_THROWS_MATCHES(fmt::format("{:%.1Q}", 1q_m), fmt::format_error, Message("precision not allowed for integral quantity representation")); + REQUIRE_THROWS_MATCHES(fmt::format("{:%.1Q}", 1_q_m), fmt::format_error, Message("precision not allowed for integral quantity representation")); } } @@ -1047,70 +1047,70 @@ TEST_CASE("type specification", "[text][fmt]") { SECTION("full format {:%Q %q} on a quantity") { - CHECK(fmt::format("{:%bQ %q}", 42q_m) == "101010 m"); - CHECK(fmt::format("{:%BQ %q}", 42q_m) == "101010 m"); - CHECK(fmt::format("{:%dQ %q}", 42q_m) == "42 m"); - CHECK(fmt::format("{:%oQ %q}", 42q_m) == "52 m"); - CHECK(fmt::format("{:%xQ %q}", 42q_m) == "2a m"); - CHECK(fmt::format("{:%XQ %q}", 42q_m) == "2A m"); + CHECK(fmt::format("{:%bQ %q}", 42_q_m) == "101010 m"); + CHECK(fmt::format("{:%BQ %q}", 42_q_m) == "101010 m"); + CHECK(fmt::format("{:%dQ %q}", 42_q_m) == "42 m"); + CHECK(fmt::format("{:%oQ %q}", 42_q_m) == "52 m"); + CHECK(fmt::format("{:%xQ %q}", 42_q_m) == "2a m"); + CHECK(fmt::format("{:%XQ %q}", 42_q_m) == "2A m"); #ifdef COMP_MSVC - CHECK(fmt::format("{:%aQ %q}", 1.2345678q_m) == "0x1.3c0ca2a5b1d5dp+0 m"); - CHECK(fmt::format("{:%.3aQ %q}", 1.2345678q_m) == "0x1.3c1p+0 m"); - CHECK(fmt::format("{:%AQ %q}", 1.2345678q_m) == "0X1.3C0CA2A5B1D5DP+0 m"); - CHECK(fmt::format("{:%.3AQ %q}", 1.2345678q_m) == "0X1.3C1P+0 m"); + CHECK(fmt::format("{:%aQ %q}", 1.2345678_q_m) == "0x1.3c0ca2a5b1d5dp+0 m"); + CHECK(fmt::format("{:%.3aQ %q}", 1.2345678_q_m) == "0x1.3c1p+0 m"); + CHECK(fmt::format("{:%AQ %q}", 1.2345678_q_m) == "0X1.3C0CA2A5B1D5DP+0 m"); + CHECK(fmt::format("{:%.3AQ %q}", 1.2345678_q_m) == "0X1.3C1P+0 m"); #else - CHECK(fmt::format("{:%aQ %q}", 1.2345678q_m) == "0x9.e065152d8eae841p-3 m"); - CHECK(fmt::format("{:%.3aQ %q}", 1.2345678q_m) == "0x9.e06p-3 m"); - CHECK(fmt::format("{:%AQ %q}", 1.2345678q_m) == "0X9.E065152D8EAE841P-3 m"); - CHECK(fmt::format("{:%.3AQ %q}", 1.2345678q_m) == "0X9.E06P-3 m"); + CHECK(fmt::format("{:%aQ %q}", 1.2345678_q_m) == "0x9.e065152d8eae841p-3 m"); + CHECK(fmt::format("{:%.3aQ %q}", 1.2345678_q_m) == "0x9.e06p-3 m"); + CHECK(fmt::format("{:%AQ %q}", 1.2345678_q_m) == "0X9.E065152D8EAE841P-3 m"); + CHECK(fmt::format("{:%.3AQ %q}", 1.2345678_q_m) == "0X9.E06P-3 m"); #endif - CHECK(fmt::format("{:%eQ %q}", 1.2345678q_m) == "1.234568e+00 m"); - CHECK(fmt::format("{:%.3eQ %q}", 1.2345678q_m) == "1.235e+00 m"); - CHECK(fmt::format("{:%EQ %q}", 1.2345678q_m) == "1.234568E+00 m"); - CHECK(fmt::format("{:%.3EQ %q}", 1.2345678q_m) == "1.235E+00 m"); - CHECK(fmt::format("{:%gQ %q}", 1.2345678q_m) == "1.23457 m"); - CHECK(fmt::format("{:%gQ %q}", 1.2345678e8q_m) == "1.23457e+08 m"); - CHECK(fmt::format("{:%.3gQ %q}", 1.2345678q_m) == "1.23 m"); - CHECK(fmt::format("{:%.3gQ %q}", 1.2345678e8q_m) == "1.23e+08 m"); - CHECK(fmt::format("{:%GQ %q}", 1.2345678q_m) == "1.23457 m"); - CHECK(fmt::format("{:%GQ %q}", 1.2345678e8q_m) == "1.23457E+08 m"); - CHECK(fmt::format("{:%.3GQ %q}", 1.2345678q_m) == "1.23 m"); - CHECK(fmt::format("{:%.3GQ %q}", 1.2345678e8q_m) == "1.23E+08 m"); + CHECK(fmt::format("{:%eQ %q}", 1.2345678_q_m) == "1.234568e+00 m"); + CHECK(fmt::format("{:%.3eQ %q}", 1.2345678_q_m) == "1.235e+00 m"); + CHECK(fmt::format("{:%EQ %q}", 1.2345678_q_m) == "1.234568E+00 m"); + CHECK(fmt::format("{:%.3EQ %q}", 1.2345678_q_m) == "1.235E+00 m"); + CHECK(fmt::format("{:%gQ %q}", 1.2345678_q_m) == "1.23457 m"); + CHECK(fmt::format("{:%gQ %q}", 1.2345678e8_q_m) == "1.23457e+08 m"); + CHECK(fmt::format("{:%.3gQ %q}", 1.2345678_q_m) == "1.23 m"); + CHECK(fmt::format("{:%.3gQ %q}", 1.2345678e8_q_m) == "1.23e+08 m"); + CHECK(fmt::format("{:%GQ %q}", 1.2345678_q_m) == "1.23457 m"); + CHECK(fmt::format("{:%GQ %q}", 1.2345678e8_q_m) == "1.23457E+08 m"); + CHECK(fmt::format("{:%.3GQ %q}", 1.2345678_q_m) == "1.23 m"); + CHECK(fmt::format("{:%.3GQ %q}", 1.2345678e8_q_m) == "1.23E+08 m"); } SECTION("value only format {:%Q} on a quantity") { - CHECK(fmt::format("{:%bQ}", 42q_m) == "101010"); - CHECK(fmt::format("{:%BQ}", 42q_m) == "101010"); - CHECK(fmt::format("{:%dQ}", 42q_m) == "42"); - CHECK(fmt::format("{:%oQ}", 42q_m) == "52"); - CHECK(fmt::format("{:%xQ}", 42q_m) == "2a"); - CHECK(fmt::format("{:%XQ}", 42q_m) == "2A"); + CHECK(fmt::format("{:%bQ}", 42_q_m) == "101010"); + CHECK(fmt::format("{:%BQ}", 42_q_m) == "101010"); + CHECK(fmt::format("{:%dQ}", 42_q_m) == "42"); + CHECK(fmt::format("{:%oQ}", 42_q_m) == "52"); + CHECK(fmt::format("{:%xQ}", 42_q_m) == "2a"); + CHECK(fmt::format("{:%XQ}", 42_q_m) == "2A"); #ifdef COMP_MSVC - CHECK(fmt::format("{:%aQ}", 1.2345678q_m) == "0x1.3c0ca2a5b1d5dp+0"); - CHECK(fmt::format("{:%.3aQ}", 1.2345678q_m) == "0x1.3c1p+0"); - CHECK(fmt::format("{:%AQ}", 1.2345678q_m) == "0X1.3C0CA2A5B1D5DP+0"); - CHECK(fmt::format("{:%.3AQ}", 1.2345678q_m) == "0X1.3C1P+0"); + CHECK(fmt::format("{:%aQ}", 1.2345678_q_m) == "0x1.3c0ca2a5b1d5dp+0"); + CHECK(fmt::format("{:%.3aQ}", 1.2345678_q_m) == "0x1.3c1p+0"); + CHECK(fmt::format("{:%AQ}", 1.2345678_q_m) == "0X1.3C0CA2A5B1D5DP+0"); + CHECK(fmt::format("{:%.3AQ}", 1.2345678_q_m) == "0X1.3C1P+0"); #else - CHECK(fmt::format("{:%aQ}", 1.2345678q_m) == "0x9.e065152d8eae841p-3"); - CHECK(fmt::format("{:%.3aQ}", 1.2345678q_m) == "0x9.e06p-3"); - CHECK(fmt::format("{:%AQ}", 1.2345678q_m) == "0X9.E065152D8EAE841P-3"); - CHECK(fmt::format("{:%.3AQ}", 1.2345678q_m) == "0X9.E06P-3"); + CHECK(fmt::format("{:%aQ}", 1.2345678_q_m) == "0x9.e065152d8eae841p-3"); + CHECK(fmt::format("{:%.3aQ}", 1.2345678_q_m) == "0x9.e06p-3"); + CHECK(fmt::format("{:%AQ}", 1.2345678_q_m) == "0X9.E065152D8EAE841P-3"); + CHECK(fmt::format("{:%.3AQ}", 1.2345678_q_m) == "0X9.E06P-3"); #endif - CHECK(fmt::format("{:%eQ}", 1.2345678q_m) == "1.234568e+00"); - CHECK(fmt::format("{:%.3eQ}", 1.2345678q_m) == "1.235e+00"); - CHECK(fmt::format("{:%EQ}", 1.2345678q_m) == "1.234568E+00"); - CHECK(fmt::format("{:%.3EQ}", 1.2345678q_m) == "1.235E+00"); - CHECK(fmt::format("{:%gQ}", 1.2345678q_m) == "1.23457"); - CHECK(fmt::format("{:%gQ}", 1.2345678e8q_m) == "1.23457e+08"); - CHECK(fmt::format("{:%.3gQ}", 1.2345678q_m) == "1.23"); - CHECK(fmt::format("{:%.3gQ}", 1.2345678e8q_m) == "1.23e+08"); - CHECK(fmt::format("{:%GQ}", 1.2345678q_m) == "1.23457"); - CHECK(fmt::format("{:%GQ}", 1.2345678e8q_m) == "1.23457E+08"); - CHECK(fmt::format("{:%.3GQ}", 1.2345678q_m) == "1.23"); - CHECK(fmt::format("{:%.3GQ}", 1.2345678e8q_m) == "1.23E+08"); + CHECK(fmt::format("{:%eQ}", 1.2345678_q_m) == "1.234568e+00"); + CHECK(fmt::format("{:%.3eQ}", 1.2345678_q_m) == "1.235e+00"); + CHECK(fmt::format("{:%EQ}", 1.2345678_q_m) == "1.234568E+00"); + CHECK(fmt::format("{:%.3EQ}", 1.2345678_q_m) == "1.235E+00"); + CHECK(fmt::format("{:%gQ}", 1.2345678_q_m) == "1.23457"); + CHECK(fmt::format("{:%gQ}", 1.2345678e8_q_m) == "1.23457e+08"); + CHECK(fmt::format("{:%.3gQ}", 1.2345678_q_m) == "1.23"); + CHECK(fmt::format("{:%.3gQ}", 1.2345678e8_q_m) == "1.23e+08"); + CHECK(fmt::format("{:%GQ}", 1.2345678_q_m) == "1.23457"); + CHECK(fmt::format("{:%GQ}", 1.2345678e8_q_m) == "1.23457E+08"); + CHECK(fmt::format("{:%.3GQ}", 1.2345678_q_m) == "1.23"); + CHECK(fmt::format("{:%.3GQ}", 1.2345678e8_q_m) == "1.23E+08"); } } @@ -1118,20 +1118,20 @@ TEST_CASE("different base types with the # specifier") { SECTION("full format {:%Q %q} on a quantity") { - CHECK(fmt::format("{:%#bQ %q}", 42q_m) == "0b101010 m"); - CHECK(fmt::format("{:%#BQ %q}", 42q_m) == "0B101010 m"); - CHECK(fmt::format("{:%#oQ %q}", 42q_m) == "052 m"); - CHECK(fmt::format("{:%#xQ %q}", 42q_m) == "0x2a m"); - CHECK(fmt::format("{:%#XQ %q}", 42q_m) == "0X2A m"); + CHECK(fmt::format("{:%#bQ %q}", 42_q_m) == "0b101010 m"); + CHECK(fmt::format("{:%#BQ %q}", 42_q_m) == "0B101010 m"); + CHECK(fmt::format("{:%#oQ %q}", 42_q_m) == "052 m"); + CHECK(fmt::format("{:%#xQ %q}", 42_q_m) == "0x2a m"); + CHECK(fmt::format("{:%#XQ %q}", 42_q_m) == "0X2A m"); } SECTION("value only format {:%Q} on a quantity") { - CHECK(fmt::format("{:%#bQ}", 42q_m) == "0b101010"); - CHECK(fmt::format("{:%#BQ}", 42q_m) == "0B101010"); - CHECK(fmt::format("{:%#oQ}", 42q_m) == "052"); - CHECK(fmt::format("{:%#xQ}", 42q_m) == "0x2a"); - CHECK(fmt::format("{:%#XQ}", 42q_m) == "0X2A"); + CHECK(fmt::format("{:%#bQ}", 42_q_m) == "0b101010"); + CHECK(fmt::format("{:%#BQ}", 42_q_m) == "0B101010"); + CHECK(fmt::format("{:%#oQ}", 42_q_m) == "052"); + CHECK(fmt::format("{:%#xQ}", 42_q_m) == "0x2a"); + CHECK(fmt::format("{:%#XQ}", 42_q_m) == "0X2A"); } } @@ -1141,7 +1141,7 @@ TEST_CASE("quantity_cast", "[text][ostream]") SECTION("int to double representation") { - const auto q = 121q_km / 2q_h; + const auto q = 121_q_km / 2_q_h; SECTION("original") { @@ -1164,7 +1164,7 @@ TEST_CASE("quantity_cast", "[text][ostream]") SECTION("double to int representation") { - const auto q = 121.q_km / 2q_h; + const auto q = 121._q_km / 2_q_h; SECTION("original") { diff --git a/test/unit_test/runtime/fmt_units_test.cpp b/test/unit_test/runtime/fmt_units_test.cpp index 4b15807a..178d1742 100644 --- a/test/unit_test/runtime/fmt_units_test.cpp +++ b/test/unit_test/runtime/fmt_units_test.cpp @@ -43,278 +43,278 @@ TEST_CASE("fmt::format on synthesized unit symbols", "[text][fmt]") { SECTION("time") { - CHECK(fmt::format("{}", 1q_ns) == "1 ns"); - CHECK(fmt::format("{}", 1q_us) == "1 µs"); - CHECK(fmt::format("{}", 1q_ms) == "1 ms"); + CHECK(fmt::format("{}", 1_q_ns) == "1 ns"); + CHECK(fmt::format("{}", 1_q_us) == "1 µs"); + CHECK(fmt::format("{}", 1_q_ms) == "1 ms"); - CHECK(fmt::format("{:%Q %Aq}", 1q_us) == "1 us"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_us) == "1 us"); } SECTION("length") { - CHECK(fmt::format("{}", 1q_mm) == "1 mm"); - CHECK(fmt::format("{}", 1q_cm) == "1 cm"); - CHECK(fmt::format("{}", 1q_km) == "1 km"); - CHECK(fmt::format("{}", 1q_ft) == "1 ft"); - CHECK(fmt::format("{}", 1q_ft_us) == "1 ft(us)"); - CHECK(fmt::format("{}", 1q_yd) == "1 yd"); - CHECK(fmt::format("{}", 1q_in) == "1 in"); - CHECK(fmt::format("{}", 1q_fathom) == "1 fathom"); - CHECK(fmt::format("{}", 1q_fathom_us) == "1 fathom(us)"); - CHECK(fmt::format("{}", 1q_mi) == "1 mi"); - CHECK(fmt::format("{}", 1q_mi_us) == "1 mi(us)"); - CHECK(fmt::format("{}", 1q_naut_mi) == "1 mi(naut)"); - CHECK(fmt::format("{}", 1q_ch) == "1 ch"); - CHECK(fmt::format("{}", 1q_rd) == "1 rd"); - CHECK(fmt::format("{}", 1q_thou) == "1 thou"); - CHECK(fmt::format("{}", 1q_pc) == "1 pc"); - CHECK(fmt::format("{}", 1q_ly) == "1 ly"); - CHECK(fmt::format("{}", 1q_pc) == "1 pc"); - CHECK(fmt::format("{}", 1q_angstrom) == "1 angstrom"); - CHECK(fmt::format("{}", 1q_au) == "1 au"); - CHECK(fmt::format("{}", 1q_pica_comp) == "1 pica(comp)"); - CHECK(fmt::format("{}", 1q_pica_prn) == "1 pica(prn)"); - CHECK(fmt::format("{}", 1q_point_comp) == "1 point(comp)"); - CHECK(fmt::format("{}", 1q_point_prn) == "1 point(prn)"); + CHECK(fmt::format("{}", 1_q_mm) == "1 mm"); + CHECK(fmt::format("{}", 1_q_cm) == "1 cm"); + CHECK(fmt::format("{}", 1_q_km) == "1 km"); + CHECK(fmt::format("{}", 1_q_ft) == "1 ft"); + CHECK(fmt::format("{}", 1_q_ft_us) == "1 ft(us)"); + CHECK(fmt::format("{}", 1_q_yd) == "1 yd"); + CHECK(fmt::format("{}", 1_q_in) == "1 in"); + CHECK(fmt::format("{}", 1_q_fathom) == "1 fathom"); + CHECK(fmt::format("{}", 1_q_fathom_us) == "1 fathom(us)"); + CHECK(fmt::format("{}", 1_q_mi) == "1 mi"); + CHECK(fmt::format("{}", 1_q_mi_us) == "1 mi(us)"); + CHECK(fmt::format("{}", 1_q_naut_mi) == "1 mi(naut)"); + CHECK(fmt::format("{}", 1_q_ch) == "1 ch"); + CHECK(fmt::format("{}", 1_q_rd) == "1 rd"); + CHECK(fmt::format("{}", 1_q_thou) == "1 thou"); + CHECK(fmt::format("{}", 1_q_pc) == "1 pc"); + CHECK(fmt::format("{}", 1_q_ly) == "1 ly"); + CHECK(fmt::format("{}", 1_q_pc) == "1 pc"); + CHECK(fmt::format("{}", 1_q_angstrom) == "1 angstrom"); + CHECK(fmt::format("{}", 1_q_au) == "1 au"); + CHECK(fmt::format("{}", 1_q_pica_comp) == "1 pica(comp)"); + CHECK(fmt::format("{}", 1_q_pica_prn) == "1 pica(prn)"); + CHECK(fmt::format("{}", 1_q_point_comp) == "1 point(comp)"); + CHECK(fmt::format("{}", 1_q_point_prn) == "1 point(prn)"); } SECTION("mass") { - CHECK(fmt::format("{}", 1q_kg) == "1 kg"); + CHECK(fmt::format("{}", 1_q_kg) == "1 kg"); } SECTION("area") { - CHECK(fmt::format("{}", 1q_m2) == "1 m²"); - CHECK(fmt::format("{}", 1q_mm2) == "1 mm²"); - CHECK(fmt::format("{}", 1q_cm2) == "1 cm²"); - CHECK(fmt::format("{}", 1q_km2) == "1 km²"); - CHECK(fmt::format("{}", 1q_ft2) == "1 ft²"); + CHECK(fmt::format("{}", 1_q_m2) == "1 m²"); + CHECK(fmt::format("{}", 1_q_mm2) == "1 mm²"); + CHECK(fmt::format("{}", 1_q_cm2) == "1 cm²"); + CHECK(fmt::format("{}", 1_q_km2) == "1 km²"); + CHECK(fmt::format("{}", 1_q_ft2) == "1 ft²"); - CHECK(fmt::format("{:%Q %Aq}", 1q_m2) == "1 m^2"); - CHECK(fmt::format("{:%Q %Aq}", 1q_mm2) == "1 mm^2"); - CHECK(fmt::format("{:%Q %Aq}", 1q_cm2) == "1 cm^2"); - CHECK(fmt::format("{:%Q %Aq}", 1q_km2) == "1 km^2"); - CHECK(fmt::format("{:%Q %Aq}", 1q_ft2) == "1 ft^2"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_m2) == "1 m^2"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_mm2) == "1 mm^2"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_cm2) == "1 cm^2"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_km2) == "1 km^2"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_ft2) == "1 ft^2"); } SECTION("density") { - CHECK(fmt::format("{}", 1q_kg_per_m3) == "1 kg/m³"); - CHECK(fmt::format("{:%Q %Aq}", 1q_kg_per_m3) == "1 kg/m^3"); + CHECK(fmt::format("{}", 1_q_kg_per_m3) == "1 kg/m³"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_kg_per_m3) == "1 kg/m^3"); } SECTION("resistance") { - CHECK(fmt::format("{}", 1q_R) == "1 Ω"); - CHECK(fmt::format("{}", 1q_kR) == "1 kΩ"); - CHECK(fmt::format("{}", 1q_mR) == "1 mΩ"); - CHECK(fmt::format("{}", 1q_MR) == "1 MΩ"); + CHECK(fmt::format("{}", 1_q_R) == "1 Ω"); + CHECK(fmt::format("{}", 1_q_kR) == "1 kΩ"); + CHECK(fmt::format("{}", 1_q_mR) == "1 mΩ"); + CHECK(fmt::format("{}", 1_q_MR) == "1 MΩ"); - CHECK(fmt::format("{:%Q %Aq}", 1q_R) == "1 ohm"); - CHECK(fmt::format("{:%Q %Aq}", 1q_kR) == "1 kohm"); - CHECK(fmt::format("{:%Q %Aq}", 1q_mR) == "1 mohm"); - CHECK(fmt::format("{:%Q %Aq}", 1q_MR) == "1 Mohm"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_R) == "1 ohm"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_kR) == "1 kohm"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_mR) == "1 mohm"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_MR) == "1 Mohm"); } SECTION("voltage") { - CHECK(fmt::format("{}", 1q_V) == "1 V"); - CHECK(fmt::format("{}", 1q_mV) == "1 mV"); - CHECK(fmt::format("{}", 1q_uV) == "1 µV"); - CHECK(fmt::format("{}", 1q_nV) == "1 nV"); - CHECK(fmt::format("{}", 1q_pV) == "1 pV"); + CHECK(fmt::format("{}", 1_q_V) == "1 V"); + CHECK(fmt::format("{}", 1_q_mV) == "1 mV"); + CHECK(fmt::format("{}", 1_q_uV) == "1 µV"); + CHECK(fmt::format("{}", 1_q_nV) == "1 nV"); + CHECK(fmt::format("{}", 1_q_pV) == "1 pV"); - CHECK(fmt::format("{:%Q %Aq}", 1q_uV) == "1 uV"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_uV) == "1 uV"); } SECTION("volume") { - CHECK(fmt::format("{}", 1q_m3) == "1 m³"); - CHECK(fmt::format("{}", 1q_mm3) == "1 mm³"); - CHECK(fmt::format("{}", 1q_cm3) == "1 cm³"); - CHECK(fmt::format("{}", 1q_km3) == "1 km³"); - CHECK(fmt::format("{}", 1q_ft3) == "1 ft³"); + CHECK(fmt::format("{}", 1_q_m3) == "1 m³"); + CHECK(fmt::format("{}", 1_q_mm3) == "1 mm³"); + CHECK(fmt::format("{}", 1_q_cm3) == "1 cm³"); + CHECK(fmt::format("{}", 1_q_km3) == "1 km³"); + CHECK(fmt::format("{}", 1_q_ft3) == "1 ft³"); - CHECK(fmt::format("{:%Q %Aq}", 1q_m3) == "1 m^3"); - CHECK(fmt::format("{:%Q %Aq}", 1q_mm3) == "1 mm^3"); - CHECK(fmt::format("{:%Q %Aq}", 1q_cm3) == "1 cm^3"); - CHECK(fmt::format("{:%Q %Aq}", 1q_km3) == "1 km^3"); - CHECK(fmt::format("{:%Q %Aq}", 1q_ft3) == "1 ft^3"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_m3) == "1 m^3"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_mm3) == "1 mm^3"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_cm3) == "1 cm^3"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_km3) == "1 km^3"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_ft3) == "1 ft^3"); } SECTION("frequency") { - CHECK(fmt::format("{}", 1q_mHz) == "1 mHz"); - CHECK(fmt::format("{}", 1q_kHz) == "1 kHz"); - CHECK(fmt::format("{}", 1q_MHz) == "1 MHz"); - CHECK(fmt::format("{}", 1q_GHz) == "1 GHz"); - CHECK(fmt::format("{}", 1q_THz) == "1 THz"); + CHECK(fmt::format("{}", 1_q_mHz) == "1 mHz"); + CHECK(fmt::format("{}", 1_q_kHz) == "1 kHz"); + CHECK(fmt::format("{}", 1_q_MHz) == "1 MHz"); + CHECK(fmt::format("{}", 1_q_GHz) == "1 GHz"); + CHECK(fmt::format("{}", 1_q_THz) == "1 THz"); } SECTION("speed") { - CHECK(fmt::format("{}", 1q_m_per_s) == "1 m/s"); - CHECK(fmt::format("{}", 1q_km_per_h) == "1 km/h"); - CHECK(fmt::format("{}", 1q_mi_per_h) == "1 mi/h"); + CHECK(fmt::format("{}", 1_q_m_per_s) == "1 m/s"); + CHECK(fmt::format("{}", 1_q_km_per_h) == "1 km/h"); + CHECK(fmt::format("{}", 1_q_mi_per_h) == "1 mi/h"); } SECTION("acceleration") { - CHECK(fmt::format("{}", 1q_m_per_s2) == "1 m/s²"); - CHECK(fmt::format("{:%Q %Aq}", 1q_m_per_s2) == "1 m/s^2"); + CHECK(fmt::format("{}", 1_q_m_per_s2) == "1 m/s²"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_m_per_s2) == "1 m/s^2"); } SECTION("momentum") { - CHECK(fmt::format("{}", 1q_kg_m_per_s) == "1 kg ⋅ m/s"); - CHECK(fmt::format("{:%Q %Aq}", 1q_kg_m_per_s) == "1 kg m/s"); + CHECK(fmt::format("{}", 1_q_kg_m_per_s) == "1 kg ⋅ m/s"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_kg_m_per_s) == "1 kg m/s"); } SECTION("energy") { - CHECK(fmt::format("{}", 1q_mJ) == "1 mJ"); - CHECK(fmt::format("{}", 1q_kJ) == "1 kJ"); - CHECK(fmt::format("{}", 1q_MJ) == "1 MJ"); - CHECK(fmt::format("{}", 1q_GJ) == "1 GJ"); + CHECK(fmt::format("{}", 1_q_mJ) == "1 mJ"); + CHECK(fmt::format("{}", 1_q_kJ) == "1 kJ"); + CHECK(fmt::format("{}", 1_q_MJ) == "1 MJ"); + CHECK(fmt::format("{}", 1_q_GJ) == "1 GJ"); } SECTION("power") { - CHECK(fmt::format("{}", 1q_mW) == "1 mW"); - CHECK(fmt::format("{}", 1q_kW) == "1 kW"); - CHECK(fmt::format("{}", 1q_MW) == "1 MW"); - CHECK(fmt::format("{}", 1q_GW) == "1 GW"); + CHECK(fmt::format("{}", 1_q_mW) == "1 mW"); + CHECK(fmt::format("{}", 1_q_kW) == "1 kW"); + CHECK(fmt::format("{}", 1_q_MW) == "1 MW"); + CHECK(fmt::format("{}", 1_q_GW) == "1 GW"); } SECTION("surface tension") { - CHECK(fmt::format("{}", 1q_N_per_m) == "1 N/m"); + CHECK(fmt::format("{}", 1_q_N_per_m) == "1 N/m"); } SECTION("magnetic induction") { - CHECK(fmt::format("{}", 1q_T) == "1 T"); + CHECK(fmt::format("{}", 1_q_T) == "1 T"); } SECTION("magnetic flux") { - CHECK(fmt::format("{}", 1q_Wb) == "1 Wb"); - CHECK(fmt::format("{}", 1q_G) == "1 G"); + CHECK(fmt::format("{}", 1_q_Wb) == "1 Wb"); + CHECK(fmt::format("{}", 1_q_G) == "1 G"); } SECTION("inductance") { - CHECK(fmt::format("{}", 1q_H) == "1 H"); - CHECK(fmt::format("{}", 1q_mH) == "1 mH"); + CHECK(fmt::format("{}", 1_q_H) == "1 H"); + CHECK(fmt::format("{}", 1_q_mH) == "1 mH"); } SECTION("conductance") { - CHECK(fmt::format("{}", 1q_S) == "1 S"); - CHECK(fmt::format("{}", 1q_nS) == "1 nS"); + CHECK(fmt::format("{}", 1_q_S) == "1 S"); + CHECK(fmt::format("{}", 1_q_nS) == "1 nS"); } SECTION("catalytic activity") { - CHECK(fmt::format("{}", 1q_kat) == "1 kat"); - CHECK(fmt::format("{}", 1q_U) == "1 U"); + CHECK(fmt::format("{}", 1_q_kat) == "1 kat"); + CHECK(fmt::format("{}", 1_q_U) == "1 U"); } SECTION("absorbed dose") { - CHECK(fmt::format("{}", 1q_Gy) == "1 Gy"); - CHECK(fmt::format("{}", 1q_kGy) == "1 kGy"); - CHECK(fmt::format("{}", 1q_mGy) == "1 mGy"); + CHECK(fmt::format("{}", 1_q_Gy) == "1 Gy"); + CHECK(fmt::format("{}", 1_q_kGy) == "1 kGy"); + CHECK(fmt::format("{}", 1_q_mGy) == "1 mGy"); } SECTION("addition with common ratio") { - CHECK(fmt::format("{}", 1q_in + 1q_yd) == "37 in"); + CHECK(fmt::format("{}", 1_q_in + 1_q_yd) == "37 in"); } SECTION("current density") { - CHECK(fmt::format("{}", 1q_A_per_m2) == "1 A/m²"); - CHECK(fmt::format("{:%Q %Aq}", 1q_A_per_m2) == "1 A/m^2"); + CHECK(fmt::format("{}", 1_q_A_per_m2) == "1 A/m²"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_A_per_m2) == "1 A/m^2"); } SECTION("concentration") { - CHECK(fmt::format("{}", 1q_mol_per_m3) == "1 mol/m³"); - CHECK(fmt::format("{:%Q %Aq}", 1q_mol_per_m3) == "1 mol/m^3"); + CHECK(fmt::format("{}", 1_q_mol_per_m3) == "1 mol/m³"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_mol_per_m3) == "1 mol/m^3"); } SECTION("luminance") { - CHECK(fmt::format("{}", 1q_cd_per_m2) == "1 cd/m²"); - CHECK(fmt::format("{:%Q %Aq}", 1q_cd_per_m2) == "1 cd/m^2"); + CHECK(fmt::format("{}", 1_q_cd_per_m2) == "1 cd/m²"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_cd_per_m2) == "1 cd/m^2"); } SECTION("dynamic viscosity") { - CHECK(fmt::format("{}", 1q_Pa_s) == "1 Pa ⋅ s"); - CHECK(fmt::format("{:%Q %Aq}", 1q_Pa_s) == "1 Pa s"); + CHECK(fmt::format("{}", 1_q_Pa_s) == "1 Pa ⋅ s"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_Pa_s) == "1 Pa s"); } SECTION("heat capacity") { - CHECK(fmt::format("{}", 1q_J_per_K) == "1 J/K"); + CHECK(fmt::format("{}", 1_q_J_per_K) == "1 J/K"); } SECTION("specific heat capacity") { - CHECK(fmt::format("{}", 1q_J_per_kg_K) == "1 J ⋅ K⁻¹ ⋅ kg⁻¹"); - CHECK(fmt::format("{:%Q %Aq}", 1q_J_per_kg_K) == "1 J K^-1 kg^-1"); + CHECK(fmt::format("{}", 1_q_J_per_kg_K) == "1 J ⋅ K⁻¹ ⋅ kg⁻¹"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_J_per_kg_K) == "1 J K^-1 kg^-1"); } SECTION("molar heath capacity") { - CHECK(fmt::format("{}", 1q_J_per_mol_K) == "1 J ⋅ K⁻¹ ⋅ mol⁻¹"); - CHECK(fmt::format("{:%Q %Aq}", 1q_J_per_mol_K) == "1 J K^-1 mol^-1"); + CHECK(fmt::format("{}", 1_q_J_per_mol_K) == "1 J ⋅ K⁻¹ ⋅ mol⁻¹"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_J_per_mol_K) == "1 J K^-1 mol^-1"); } SECTION("thermal conductivity") { - CHECK(fmt::format("{}", 1q_W_per_m_K) == "1 W ⋅ m⁻¹ ⋅ K⁻¹"); - CHECK(fmt::format("{:%Q %Aq}", 1q_W_per_m_K) == "1 W m^-1 K^-1"); + CHECK(fmt::format("{}", 1_q_W_per_m_K) == "1 W ⋅ m⁻¹ ⋅ K⁻¹"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_W_per_m_K) == "1 W m^-1 K^-1"); } SECTION("electric field strength") { - CHECK(fmt::format("{}", 1q_V_per_m) == "1 V/m"); + CHECK(fmt::format("{}", 1_q_V_per_m) == "1 V/m"); } SECTION("charge density") { - CHECK(fmt::format("{}", 1q_C_per_m3) == "1 C/m³"); - CHECK(fmt::format("{:%Q %Aq}", 1q_C_per_m3) == "1 C/m^3"); - CHECK(fmt::format("{}", 1q_C_per_m2) == "1 C/m²"); - CHECK(fmt::format("{:%Q %Aq}", 1q_C_per_m2) == "1 C/m^2"); + CHECK(fmt::format("{}", 1_q_C_per_m3) == "1 C/m³"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_C_per_m3) == "1 C/m^3"); + CHECK(fmt::format("{}", 1_q_C_per_m2) == "1 C/m²"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_C_per_m2) == "1 C/m^2"); } SECTION("permittivity") { - CHECK(fmt::format("{}", 1q_F_per_m) == "1 F/m"); + CHECK(fmt::format("{}", 1_q_F_per_m) == "1 F/m"); } SECTION("permeability") { - CHECK(fmt::format("{}", 1q_H_per_m) == "1 H/m"); + CHECK(fmt::format("{}", 1_q_H_per_m) == "1 H/m"); } SECTION("molar energy") { - CHECK(fmt::format("{}", 1q_J_per_mol) == "1 J/mol"); + CHECK(fmt::format("{}", 1_q_J_per_mol) == "1 J/mol"); } SECTION("incoherent units with powers") { - CHECK(fmt::format("{}", 1q_mi * 1q_mi * 1q_mi) == "1 [15900351812136/3814697265625 × 10⁹] m³"); - CHECK(fmt::format("{}", 1q_au * 1q_au) == "1 [2237952291797391849 × 10⁴] m²"); + CHECK(fmt::format("{}", 1_q_mi * 1_q_mi * 1_q_mi) == "1 [15900351812136/3814697265625 × 10⁹] m³"); + CHECK(fmt::format("{}", 1_q_au * 1_q_au) == "1 [2237952291797391849 × 10⁴] m²"); - CHECK(fmt::format("{:%Q %Aq}", 1q_mi * 1q_mi * 1q_mi) == "1 [15900351812136/3814697265625 x 10^9] m^3"); - CHECK(fmt::format("{:%Q %Aq}", 1q_au * 1q_au) == "1 [2237952291797391849 x 10^4] m^2"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_mi * 1_q_mi * 1_q_mi) == "1 [15900351812136/3814697265625 x 10^9] m^3"); + CHECK(fmt::format("{:%Q %Aq}", 1_q_au * 1_q_au) == "1 [2237952291797391849 x 10^4] m^2"); } SECTION("unknown scaled unit with reference different than the dimension's coherent unit") diff --git a/test/unit_test/runtime/math_test.cpp b/test/unit_test/runtime/math_test.cpp index 6b0c0243..1b73f46a 100644 --- a/test/unit_test/runtime/math_test.cpp +++ b/test/unit_test/runtime/math_test.cpp @@ -33,25 +33,25 @@ using namespace units::physical::si; TEST_CASE("'pow()' on quantity changes the value and the dimension accordingly", "[math][pow]") { SECTION ("'pow<0>(q)' returns '1'") { - CHECK(pow<0>(2q_m) == 1); + CHECK(pow<0>(2_q_m) == 1); } SECTION ("'pow<1>(q)' returns 'q'") { - CHECK(pow<1>(2q_m) == 2q_m); + CHECK(pow<1>(2_q_m) == 2_q_m); } SECTION ("'pow<2>(q)' squares both the value and a dimension") { - CHECK(pow<2>(2q_m) == 4q_m2); + CHECK(pow<2>(2_q_m) == 4_q_m2); } SECTION ("'pow<3>(q)' cubes both the value and a dimension") { - CHECK(pow<3>(2q_m) == 8q_m3); + CHECK(pow<3>(2_q_m) == 8_q_m3); } } TEST_CASE("'sqrt()' on quantity changes the value and the dimension accordingly", "[math][sqrt]") { - REQUIRE(sqrt(4q_m2) == 2q_m); + REQUIRE(sqrt(4_q_m2) == 2_q_m); } TEST_CASE("absolute functions on quantity returns the absolute value", "[math][abs][fabs]") @@ -60,13 +60,13 @@ TEST_CASE("absolute functions on quantity returns the absolute value", "[math][a { SECTION ("integral representation") { - REQUIRE(abs(-1q_m) == 1q_m); + REQUIRE(abs(-1_q_m) == 1_q_m); } #ifndef COMP_MSVC SECTION ("floating-point representation") { - REQUIRE(abs(-1.q_m) == 1q_m); + REQUIRE(abs(-1._q_m) == 1_q_m); } #endif } @@ -75,13 +75,13 @@ TEST_CASE("absolute functions on quantity returns the absolute value", "[math][a { SECTION ("integral representation") { - REQUIRE(abs(1q_m) == 1q_m); + REQUIRE(abs(1_q_m) == 1_q_m); } #ifndef COMP_MSVC SECTION ("floating-point representation") { - REQUIRE(abs(1.q_m) == 1q_m); + REQUIRE(abs(1._q_m) == 1_q_m); } #endif } @@ -90,12 +90,12 @@ TEST_CASE("absolute functions on quantity returns the absolute value", "[math][a TEST_CASE("numeric_limits functions", "[limits]") { SECTION ("'epsilon' works as expected using default floating type") { - REQUIRE(epsilon().count() == std::numeric_limits::epsilon()); + REQUIRE(epsilon().count() == std::numeric_limits::epsilon()); } SECTION ("'epsilon' works as expected using integers") { - REQUIRE(epsilon().count() == std::numeric_limits::epsilon()); + REQUIRE(epsilon().count() == std::numeric_limits::epsilon()); } SECTION ("'epsilon' works as expected using mixed Rep types") { - REQUIRE(epsilon().count() != std::numeric_limits::epsilon()); + REQUIRE(epsilon().count() != std::numeric_limits::epsilon()); } } diff --git a/test/unit_test/static/cgs_test.cpp b/test/unit_test/static/cgs_test.cpp index 8cdd0540..85348405 100644 --- a/test/unit_test/static/cgs_test.cpp +++ b/test/unit_test/static/cgs_test.cpp @@ -50,17 +50,17 @@ static_assert(centimetre::symbol == "cm"); // speed -static_assert(10q_cm / 5q_s == 2q_cm_per_s); -static_assert(10q_cm / 2q_cm_per_s == 5q_s); -static_assert(10q_cm == 2q_cm_per_s * 5q_s); +static_assert(10_q_cm / 5_q_s == 2_q_cm_per_s); +static_assert(10_q_cm / 2_q_cm_per_s == 5_q_s); +static_assert(10_q_cm == 2_q_cm_per_s * 5_q_s); static_assert(detail::unit_text() == "cm/s"); // area static_assert(centimetre::ratio / dimension_unit::ratio == ratio(1)); -static_assert(1q_cm * 1q_cm == 1q_cm2); -static_assert(100q_cm2 / 10q_cm == 10q_cm); +static_assert(1_q_cm * 1_q_cm == 1_q_cm2); +static_assert(100_q_cm2 / 10_q_cm == 10_q_cm); static_assert(detail::unit_text() == basic_symbol_text("cm²", "cm^2")); @@ -68,35 +68,35 @@ static_assert(detail::unit_text() == basic_symbol_t // acceleration -static_assert(10q_cm_per_s / 10q_s == 1q_Gal); -static_assert(10q_cm_per_s / 1q_Gal == 10q_s); -static_assert(1q_Gal * 10q_s == 10q_cm_per_s); +static_assert(10_q_cm_per_s / 10_q_s == 1_q_Gal); +static_assert(10_q_cm_per_s / 1_q_Gal == 10_q_s); +static_assert(1_q_Gal * 10_q_s == 10_q_cm_per_s); // force -static_assert(10q_g * 10q_Gal == 100q_dyn); -static_assert(100q_dyn / 10q_g == 10q_Gal); -static_assert(100q_dyn / 10q_Gal == 10q_g); +static_assert(10_q_g * 10_q_Gal == 100_q_dyn); +static_assert(100_q_dyn / 10_q_g == 10_q_Gal); +static_assert(100_q_dyn / 10_q_Gal == 10_q_g); // pressure -static_assert(10q_dyn / 10q_cm2 == 1q_Ba); -static_assert(10q_dyn / 1q_Ba == 10q_cm2); -static_assert(1q_Ba * 10q_cm2 == 10q_dyn); +static_assert(10_q_dyn / 10_q_cm2 == 1_q_Ba); +static_assert(10_q_dyn / 1_q_Ba == 10_q_cm2); +static_assert(1_q_Ba * 10_q_cm2 == 10_q_dyn); // energy -static_assert(10q_dyn * 10q_cm == 100q_erg); -static_assert(100q_erg / 10q_cm == 10q_dyn); -static_assert(100q_erg / 10q_dyn == 10q_cm); +static_assert(10_q_dyn * 10_q_cm == 100_q_erg); +static_assert(100_q_erg / 10_q_cm == 10_q_dyn); +static_assert(100_q_erg / 10_q_dyn == 10_q_cm); /* ************** DERIVED DIMENSIONS IN TERMS OF OTHER UNITS **************** */ // power -static_assert(10q_erg / 10q_s == 1q_erg_per_s); -static_assert(1q_erg_per_s * 10q_s == 10q_erg); -static_assert(10q_erg / 1q_erg_per_s == 10q_s); +static_assert(10_q_erg / 10_q_s == 1_q_erg_per_s); +static_assert(1_q_erg_per_s * 10_q_s == 10_q_erg); +static_assert(10_q_erg / 1_q_erg_per_s == 10_q_s); static_assert(detail::unit_text() == "erg/s"); diff --git a/test/unit_test/static/custom_unit_test.cpp b/test/unit_test/static/custom_unit_test.cpp index bd396f4a..f513ffae 100644 --- a/test/unit_test/static/custom_unit_test.cpp +++ b/test/unit_test/static/custom_unit_test.cpp @@ -62,7 +62,7 @@ namespace { struct kilogram_per_second : unit {}; struct dim_mass_rate : derived_dimension, units::exponent> {}; struct kilogram_per_hour : deduced_unit {}; -constexpr auto a = 1q_kg / 1q_h; +constexpr auto a = 1_q_kg / 1_q_h; static_assert(is_same_v); } diff --git a/test/unit_test/static/data_test.cpp b/test/unit_test/static/data_test.cpp index 75ce5d86..c7d31751 100644 --- a/test/unit_test/static/data_test.cpp +++ b/test/unit_test/static/data_test.cpp @@ -31,17 +31,17 @@ using namespace units::data; // information -static_assert(1q_B == 8q_b); -static_assert(1024q_b == 1q_Kib); -static_assert(1024q_B == 1q_KiB); -static_assert(8 * 1024q_b == 1q_KiB); -static_assert(8 * 1q_Kib == 1q_KiB); +static_assert(1_q_B == 8_q_b); +static_assert(1024_q_b == 1_q_Kib); +static_assert(1024_q_B == 1_q_KiB); +static_assert(8 * 1024_q_b == 1_q_KiB); +static_assert(8 * 1_q_Kib == 1_q_KiB); -static_assert(1q_Kib == 1024q_b); -static_assert(1q_Mib == 1024q_Kib); -static_assert(1q_Gib == 1024q_Mib); -static_assert(1q_Tib == 1024q_Gib); -static_assert(1q_Pib == 1024q_Tib); +static_assert(1_q_Kib == 1024_q_b); +static_assert(1_q_Mib == 1024_q_Kib); +static_assert(1_q_Gib == 1024_q_Mib); +static_assert(1_q_Tib == 1024_q_Gib); +static_assert(1_q_Pib == 1024_q_Tib); // bitrate diff --git a/test/unit_test/static/fps_test.cpp b/test/unit_test/static/fps_test.cpp index d1e575b7..fc34dfa0 100644 --- a/test/unit_test/static/fps_test.cpp +++ b/test/unit_test/static/fps_test.cpp @@ -50,17 +50,17 @@ static_assert(foot::symbol == "ft"); // speed -static_assert(10q_ft / 5q_s == 2q_ft_per_s); -static_assert(10q_ft / 2q_ft_per_s == 5q_s); -static_assert(10q_ft == 2q_ft_per_s * 5q_s); +static_assert(10_q_ft / 5_q_s == 2_q_ft_per_s); +static_assert(10_q_ft / 2_q_ft_per_s == 5_q_s); +static_assert(10_q_ft == 2_q_ft_per_s * 5_q_s); static_assert(detail::unit_text() == "ft/s"); // area static_assert(foot::ratio / dimension_unit::ratio == ratio(1)); -static_assert(1q_ft * 1q_ft == 1q_ft2); -static_assert(100q_ft2 / 10q_ft == 10q_ft); +static_assert(1_q_ft * 1_q_ft == 1_q_ft2); +static_assert(100_q_ft2 / 10_q_ft == 10_q_ft); static_assert(detail::unit_text() == basic_symbol_text("ft²", "ft^2")); @@ -68,34 +68,34 @@ static_assert(detail::unit_text() == basic_symbol_text("f // acceleration -static_assert(10q_ft_per_s / 10q_s == 1q_ft_per_s2); -static_assert(10q_ft_per_s / 1q_ft_per_s2 == 10q_s); -static_assert(1q_ft_per_s2 * 10q_s == 10q_ft_per_s); +static_assert(10_q_ft_per_s / 10_q_s == 1_q_ft_per_s2); +static_assert(10_q_ft_per_s / 1_q_ft_per_s2 == 10_q_s); +static_assert(1_q_ft_per_s2 * 10_q_s == 10_q_ft_per_s); // force -static_assert(10q_lb * 10q_ft_per_s2 == 100q_pdl); -static_assert(100q_pdl / 10q_lb == 10q_ft_per_s2); -static_assert(100q_pdl / 10q_ft_per_s2 == 10q_lb); +static_assert(10_q_lb * 10_q_ft_per_s2 == 100_q_pdl); +static_assert(100_q_pdl / 10_q_lb == 10_q_ft_per_s2); +static_assert(100_q_pdl / 10_q_ft_per_s2 == 10_q_lb); // pressure -static_assert(10q_pdl / 10q_ft2 == 1q_pdl_per_ft2); -static_assert(10q_pdl / 1q_pdl_per_ft2 == 10q_ft2); -static_assert(1q_pdl_per_ft2 * 10q_ft2 == 10q_pdl); +static_assert(10_q_pdl / 10_q_ft2 == 1_q_pdl_per_ft2); +static_assert(10_q_pdl / 1_q_pdl_per_ft2 == 10_q_ft2); +static_assert(1_q_pdl_per_ft2 * 10_q_ft2 == 10_q_pdl); // energy -static_assert(10q_pdl * 10q_ft == 100q_ft_pdl); -static_assert(100q_ft_pdl / 10q_ft == 10q_pdl); -static_assert(100q_ft_pdl / 10q_pdl == 10q_ft); +static_assert(10_q_pdl * 10_q_ft == 100_q_ft_pdl); +static_assert(100_q_ft_pdl / 10_q_ft == 10_q_pdl); +static_assert(100_q_ft_pdl / 10_q_pdl == 10_q_ft); /* ************** DERIVED DIMENSIONS IN TERMS OF OTHER UNITS **************** */ // power -static_assert(10q_ft_pdl / 10q_s == 1q_ft_pdl_per_s); -static_assert(1q_ft_pdl_per_s * 10q_s == 10q_ft_pdl); -static_assert(10q_ft_pdl / 1q_ft_pdl_per_s == 10q_s); +static_assert(10_q_ft_pdl / 10_q_s == 1_q_ft_pdl_per_s); +static_assert(1_q_ft_pdl_per_s * 10_q_s == 10_q_ft_pdl); +static_assert(10_q_ft_pdl / 1_q_ft_pdl_per_s == 10_q_s); // static_assert(detail::unit_text() == "ft_lbf/s"); diff --git a/test/unit_test/static/math_test.cpp b/test/unit_test/static/math_test.cpp index e32967de..64322d94 100644 --- a/test/unit_test/static/math_test.cpp +++ b/test/unit_test/static/math_test.cpp @@ -31,14 +31,14 @@ namespace { using namespace units::physical::si::literals; using namespace units::physical::international::literals; - static_assert(is_same_v(2q_m)), std::int64_t>); - static_assert(is_same_v(2q_m)), decltype(2q_m)>); - static_assert(is_same_v(2q_m)), decltype(4q_m2)>); - static_assert(is_same_v(2q_km)), decltype(4q_km2)>); - static_assert(is_same_v(2q_ft)), decltype(4q_ft2)>); - static_assert(is_same_v); - static_assert(is_same_v); - static_assert(is_same_v); + static_assert(is_same_v(2_q_m)), std::int64_t>); + static_assert(is_same_v(2_q_m)), decltype(2_q_m)>); + static_assert(is_same_v(2_q_m)), decltype(4_q_m2)>); + static_assert(is_same_v(2_q_km)), decltype(4_q_km2)>); + static_assert(is_same_v(2_q_ft)), decltype(4_q_ft2)>); + static_assert(is_same_v); + static_assert(is_same_v); + static_assert(is_same_v); } // namespace diff --git a/test/unit_test/static/quantity_point_test.cpp b/test/unit_test/static/quantity_point_test.cpp index b440a6cc..e3d501ed 100644 --- a/test/unit_test/static/quantity_point_test.cpp +++ b/test/unit_test/static/quantity_point_test.cpp @@ -58,23 +58,23 @@ static_assert(is_same_v::unit, kilome // constructors -static_assert(quantity_point().relative() == 0q_m); -constexpr quantity_point km{1000q_m}; -static_assert(km.relative() == 1000q_m); +static_assert(quantity_point().relative() == 0_q_m); +constexpr quantity_point km{1000_q_m}; +static_assert(km.relative() == 1000_q_m); static_assert(quantity_point(km).relative() == km.relative()); -static_assert(quantity_point(1q_m).relative() == 1q_m); +static_assert(quantity_point(1_q_m).relative() == 1_q_m); static_assert(!std::is_constructible_v, double>); // truncating conversion -static_assert(quantity_point(1.0q_m).relative() == 1.0q_m); -static_assert(quantity_point(1q_m).relative() == 1q_m); -static_assert(quantity_point(3.14q_m).relative() == 3.14q_m); +static_assert(quantity_point(1.0_q_m).relative() == 1.0_q_m); +static_assert(quantity_point(1_q_m).relative() == 1_q_m); +static_assert(quantity_point(3.14_q_m).relative() == 3.14_q_m); -static_assert(quantity_point(km).relative() == 1000q_m); +static_assert(quantity_point(km).relative() == 1000_q_m); static_assert(!std::is_constructible_v, quantity_point>); // truncating conversion -static_assert(quantity_point(quantity_point(1000.0q_m)).relative() == 1000.0q_m); -static_assert(quantity_point(km).relative() == 1000.0q_m); -static_assert(quantity_point(quantity_point(1q_km)).relative() == 1000q_m); +static_assert(quantity_point(quantity_point(1000.0_q_m)).relative() == 1000.0_q_m); +static_assert(quantity_point(km).relative() == 1000.0_q_m); +static_assert(quantity_point(quantity_point(1_q_km)).relative() == 1000_q_m); static_assert(!std::is_constructible_v, quantity_point>); // different dimensions static_assert(!std::is_constructible_v, @@ -82,7 +82,7 @@ static_assert(!std::is_constructible_v l1(1q_m), l2{}; return l2 = l1; }().relative() == 1q_m); +static_assert([]() { quantity_point l1(1_q_m), l2{}; return l2 = l1; }().relative() == 1_q_m); // static member functions @@ -98,24 +98,24 @@ static_assert(quantity_point::max().relative().count( static_assert([](auto v) { auto vv = v++; return std::pair(v, vv); -}(km) == std::pair(quantity_point(1001q_m), quantity_point(1000q_m))); +}(km) == std::pair(quantity_point(1001_q_m), quantity_point(1000_q_m))); static_assert([](auto v) { auto vv = ++v; return std::pair(v, vv); -}(km) == std::pair(quantity_point(1001q_m), quantity_point(1001q_m))); +}(km) == std::pair(quantity_point(1001_q_m), quantity_point(1001_q_m))); static_assert([](auto v) { auto vv = v--; return std::pair(v, vv); -}(km) == std::pair(quantity_point(999q_m), quantity_point(1000q_m))); +}(km) == std::pair(quantity_point(999_q_m), quantity_point(1000_q_m))); static_assert([](auto v) { auto vv = --v; return std::pair(v, vv); -}(km) == std::pair(quantity_point(999q_m), quantity_point(999q_m))); +}(km) == std::pair(quantity_point(999_q_m), quantity_point(999_q_m))); // compound assignment -static_assert((quantity_point(1q_m) += 1q_m).relative().count() == 2); -static_assert((quantity_point(2q_m) -= 1q_m).relative().count() == 1); +static_assert((quantity_point(1_q_m) += 1_q_m).relative().count() == 2); +static_assert((quantity_point(2_q_m) -= 1_q_m).relative().count() == 1); // non-member arithmetic operators @@ -138,48 +138,48 @@ static_assert( is_same_v() - quantity_point()), length>); -static_assert((1q_m + km).relative().count() == 1001); -static_assert((quantity_point(1q_m) + 1q_km).relative().count() == 1001); -static_assert((km - 1q_m).relative().count() == 999); -static_assert((quantity_point(1q_km) - quantity_point(1q_m)).count() == 999); +static_assert((1_q_m + km).relative().count() == 1001); +static_assert((quantity_point(1_q_m) + 1_q_km).relative().count() == 1001); +static_assert((km - 1_q_m).relative().count() == 999); +static_assert((quantity_point(1_q_km) - quantity_point(1_q_m)).count() == 999); // comparators -static_assert(quantity_point(2q_m) + 1q_m == quantity_point(3q_m)); -static_assert(!(2q_m + quantity_point(2q_m) == quantity_point(3q_m))); -static_assert(quantity_point(2q_m) + 2q_m != quantity_point(3q_m)); -static_assert(!(2q_m + quantity_point(2q_m) != quantity_point(4q_m))); -static_assert(quantity_point(2q_m) > quantity_point(1q_m)); -static_assert(!(quantity_point(1q_m) > quantity_point(1q_m))); -static_assert(quantity_point(1q_m) < quantity_point(2q_m)); -static_assert(!(quantity_point(2q_m) < quantity_point(2q_m))); -static_assert(quantity_point(2q_m) >= quantity_point(1q_m)); -static_assert(quantity_point(2q_m) >= quantity_point(2q_m)); -static_assert(!(quantity_point(2q_m) >= quantity_point(3q_m))); -static_assert(quantity_point(1q_m) <= quantity_point(2q_m)); -static_assert(quantity_point(2q_m) <= quantity_point(2q_m)); -static_assert(!(quantity_point(3q_m) <= quantity_point(2q_m))); +static_assert(quantity_point(2_q_m) + 1_q_m == quantity_point(3_q_m)); +static_assert(!(2_q_m + quantity_point(2_q_m) == quantity_point(3_q_m))); +static_assert(quantity_point(2_q_m) + 2_q_m != quantity_point(3_q_m)); +static_assert(!(2_q_m + quantity_point(2_q_m) != quantity_point(4_q_m))); +static_assert(quantity_point(2_q_m) > quantity_point(1_q_m)); +static_assert(!(quantity_point(1_q_m) > quantity_point(1_q_m))); +static_assert(quantity_point(1_q_m) < quantity_point(2_q_m)); +static_assert(!(quantity_point(2_q_m) < quantity_point(2_q_m))); +static_assert(quantity_point(2_q_m) >= quantity_point(1_q_m)); +static_assert(quantity_point(2_q_m) >= quantity_point(2_q_m)); +static_assert(!(quantity_point(2_q_m) >= quantity_point(3_q_m))); +static_assert(quantity_point(1_q_m) <= quantity_point(2_q_m)); +static_assert(quantity_point(2_q_m) <= quantity_point(2_q_m)); +static_assert(!(quantity_point(3_q_m) <= quantity_point(2_q_m))); -static_assert(quantity_point(3q_m) == quantity_point(3.0q_m)); -static_assert(quantity_point(3q_m) != quantity_point(3.14q_m)); -static_assert(quantity_point(2q_m) > quantity_point(1.0q_m)); -static_assert(quantity_point(1.0q_m) < quantity_point(2q_m)); -static_assert(quantity_point(2.0q_m) >= quantity_point(1q_m)); -static_assert(quantity_point(1q_m) <= quantity_point(2.0q_m)); +static_assert(quantity_point(3_q_m) == quantity_point(3.0_q_m)); +static_assert(quantity_point(3_q_m) != quantity_point(3.14_q_m)); +static_assert(quantity_point(2_q_m) > quantity_point(1.0_q_m)); +static_assert(quantity_point(1.0_q_m) < quantity_point(2_q_m)); +static_assert(quantity_point(2.0_q_m) >= quantity_point(1_q_m)); +static_assert(quantity_point(1_q_m) <= quantity_point(2.0_q_m)); -static_assert(quantity_point(1000q_m) == quantity_point(1q_km)); -static_assert(quantity_point(1001q_m) != quantity_point(1q_km)); -static_assert(quantity_point(1001q_m) > quantity_point(1q_km)); -static_assert(quantity_point(999q_m) < quantity_point(1q_km)); -static_assert(quantity_point(1000q_m) >= quantity_point(1q_km)); -static_assert(quantity_point(1000q_m) <= quantity_point(1q_km)); +static_assert(quantity_point(1000_q_m) == quantity_point(1_q_km)); +static_assert(quantity_point(1001_q_m) != quantity_point(1_q_km)); +static_assert(quantity_point(1001_q_m) > quantity_point(1_q_km)); +static_assert(quantity_point(999_q_m) < quantity_point(1_q_km)); +static_assert(quantity_point(1000_q_m) >= quantity_point(1_q_km)); +static_assert(quantity_point(1000_q_m) <= quantity_point(1_q_km)); // alias units -static_assert(quantity_point(2q_l) + 2q_ml == quantity_point(2002q_ml)); -static_assert(2q_l + quantity_point(2q_ml) == quantity_point(2002q_cm3)); -static_assert(quantity_point(2q_l) + 2q_cm3 == quantity_point(2002q_ml)); -static_assert(2q_dm3 + quantity_point(2q_cm3) == quantity_point(2002q_ml)); +static_assert(quantity_point(2_q_l) + 2_q_ml == quantity_point(2002_q_ml)); +static_assert(2_q_l + quantity_point(2_q_ml) == quantity_point(2002_q_cm3)); +static_assert(quantity_point(2_q_l) + 2_q_cm3 == quantity_point(2002_q_ml)); +static_assert(2_q_dm3 + quantity_point(2_q_cm3) == quantity_point(2002_q_ml)); // is_quantity_point @@ -201,47 +201,47 @@ static_assert(is_same_v); -static_assert(std::equality_comparable_with); -static_assert(quantity_point(0q_m) == quantity_point(0q_ft_us)); -static_assert(std::equality_comparable_with); +static_assert(std::equality_comparable); +static_assert(std::equality_comparable_with); +static_assert(quantity_point(0_q_m) == quantity_point(0_q_ft_us)); +static_assert(std::equality_comparable_with); // quantity_cast static_assert( - is_same_v>(quantity_point(2q_km)))::unit, metre>); + is_same_v>(quantity_point(2_q_km)))::unit, metre>); -static_assert(quantity_point_cast>(quantity_point(2q_km)).relative().count() == +static_assert(quantity_point_cast>(quantity_point(2_q_km)).relative().count() == 2000); static_assert( - quantity_point_cast>(quantity_point(2000q_m)).relative().count() == 2); -static_assert(quantity_point_cast>(quantity_point(1.23q_m)).relative().count() == + quantity_point_cast>(quantity_point(2000_q_m)).relative().count() == 2); +static_assert(quantity_point_cast>(quantity_point(1.23_q_m)).relative().count() == 1); -static_assert(quantity_point_cast>(quantity_point(2q_km)).relative().count() == 2000); -static_assert(quantity_point_cast>(quantity_point(2000q_m)).relative().count() == 2); -static_assert(quantity_point_cast>(quantity_point(1.23q_m)).relative().count() == 1); -static_assert(quantity_point_cast(quantity_point(2q_km)).relative().count() == 2000); -static_assert(quantity_point_cast(quantity_point(2000q_m)).relative().count() == 2); -static_assert(quantity_point_cast(quantity_point(1.23q_m)).relative().count() == 1); +static_assert(quantity_point_cast>(quantity_point(2_q_km)).relative().count() == 2000); +static_assert(quantity_point_cast>(quantity_point(2000_q_m)).relative().count() == 2); +static_assert(quantity_point_cast>(quantity_point(1.23_q_m)).relative().count() == 1); +static_assert(quantity_point_cast(quantity_point(2_q_km)).relative().count() == 2000); +static_assert(quantity_point_cast(quantity_point(2000_q_m)).relative().count() == 2); +static_assert(quantity_point_cast(quantity_point(1.23_q_m)).relative().count() == 1); // time -static_assert(quantity_point{1q_h} == quantity_point{3600q_s}); +static_assert(quantity_point{1_q_h} == quantity_point{3600_q_s}); template concept no_crossdimensional_equality = !requires { - quantity_point(1q_s) == quantity_point(length(1)); + quantity_point(1_q_s) == quantity_point(length(1)); }; static_assert(no_crossdimensional_equality); // length -static_assert(quantity_point(1q_km) != quantity_point(1q_m)); -static_assert(quantity_point(1q_km) == quantity_point(1000q_m)); -static_assert(quantity_point(1q_km) + 1q_m == quantity_point(1001q_m)); -static_assert(1q_km + quantity_point(1q_m) == quantity_point(1001q_m)); +static_assert(quantity_point(1_q_km) != quantity_point(1_q_m)); +static_assert(quantity_point(1_q_km) == quantity_point(1000_q_m)); +static_assert(quantity_point(1_q_km) + 1_q_m == quantity_point(1001_q_m)); +static_assert(1_q_km + quantity_point(1_q_m) == quantity_point(1001_q_m)); template concept dimensional_analysis = requires(T t) diff --git a/test/unit_test/static/quantity_test.cpp b/test/unit_test/static/quantity_test.cpp index fa26699f..882cc91e 100644 --- a/test/unit_test/static/quantity_test.cpp +++ b/test/unit_test/static/quantity_test.cpp @@ -69,9 +69,9 @@ static_assert(length(3.14).count() == 3.14); static_assert(length(km).count() == 1000); static_assert(!std::is_constructible_v, length>); // truncating conversion -static_assert(length(1000.0q_m).count() == 1000.0); +static_assert(length(1000.0_q_m).count() == 1000.0); static_assert(length(km).count() == 1000.0); -static_assert(length(1q_km).count() == 1000); +static_assert(length(1_q_km).count() == 1000); static_assert(!std::is_constructible_v, physical::si::time>); // different dimensions static_assert(!std::is_constructible_v, @@ -116,18 +116,18 @@ static_assert([](auto v) { // compound assignment -static_assert((1q_m += 1q_m).count() == 2); -static_assert((2q_m -= 1q_m).count() == 1); -static_assert((1q_m *= 2).count() == 2); -static_assert((2q_m /= 2).count() == 1); -static_assert((7q_m %= 2).count() == 1); -static_assert((7q_m %= 2q_m).count() == 1); +static_assert((1_q_m += 1_q_m).count() == 2); +static_assert((2_q_m -= 1_q_m).count() == 1); +static_assert((1_q_m *= 2).count() == 2); +static_assert((2_q_m /= 2).count() == 1); +static_assert((7_q_m %= 2).count() == 1); +static_assert((7_q_m %= 2_q_m).count() == 1); -static_assert((2.5q_m += 3q_m).count() == 5.5); -static_assert((2.5q_m += 3.5q_m).count() == 6); +static_assert((2.5_q_m += 3_q_m).count() == 5.5); +static_assert((2.5_q_m += 3.5_q_m).count() == 6); -static_assert((2.5q_m *= 3).count() == 7.5); -static_assert((2.5q_m *= 3.5).count() == 8.75); +static_assert((2.5_q_m *= 3).count() == 7.5); +static_assert((2.5_q_m *= 3.5).count() == 8.75); // operations not allowed for the respective quantities template @@ -136,11 +136,11 @@ concept invalid_compound_assignments = requires() !requires(length l) { l %= 2.; }; !requires(length l) { l %= 2; }; !requires(length l) { l %= 2.; }; - !requires(length l) { l %= 2.q_m; }; - !requires(length l) { l %= 2q_m; }; - !requires(length l) { l %= 2.q_m; }; - !requires(length l) { l += 3.5q_m; }; - !requires(length l) { l *= 3.5q_m; }; + !requires(length l) { l %= 2._q_m; }; + !requires(length l) { l %= 2_q_m; }; + !requires(length l) { l %= 2._q_m; }; + !requires(length l) { l += 3.5_q_m; }; + !requires(length l) { l *= 3.5_q_m; }; }; static_assert(invalid_compound_assignments); @@ -179,22 +179,22 @@ static_assert(is_same_v() / length()) static_assert(is_same_v() % short(1)), length>); static_assert(is_same_v() % length(1)), length>); -static_assert((1q_m + km).count() == 1001); -static_assert((1q_m + 1q_km).count() == 1001); -static_assert((km - 1q_m).count() == 999); -static_assert((1q_km - 1q_m).count() == 999); -static_assert((2q_m * 2).count() == 4); -static_assert((3 * 3q_m).count() == 9); -static_assert((4q_m / 2).count() == 2); -static_assert((4q_km / 2q_m).count() == 2); -static_assert((4000q_m / 2q_m).count() == 2000); -static_assert((7q_m % 2).count() == 1); -static_assert((7q_m % 2q_m).count() == 1); -static_assert((7q_km % 2000q_m).count() == 1000); +static_assert((1_q_m + km).count() == 1001); +static_assert((1_q_m + 1_q_km).count() == 1001); +static_assert((km - 1_q_m).count() == 999); +static_assert((1_q_km - 1_q_m).count() == 999); +static_assert((2_q_m * 2).count() == 4); +static_assert((3 * 3_q_m).count() == 9); +static_assert((4_q_m / 2).count() == 2); +static_assert((4_q_km / 2_q_m).count() == 2); +static_assert((4000_q_m / 2_q_m).count() == 2000); +static_assert((7_q_m % 2).count() == 1); +static_assert((7_q_m % 2_q_m).count() == 1); +static_assert((7_q_km % 2000_q_m).count() == 1000); -static_assert((10q_km2 * 10q_km2) / 50q_km2 == 2q_km2); +static_assert((10_q_km2 * 10_q_km2) / 50_q_km2 == 2_q_km2); -constexpr auto q1 = 10q_km / 5q_m; +constexpr auto q1 = 10_q_km / 5_q_m; static_assert(std::is_same_v, std::int64_t>>); static_assert(q1.count() == 2); @@ -203,47 +203,47 @@ static_assert(q2.count() == 2000); static_assert(quantity_cast(q1).count() == 2000); -constexpr auto q3 = 10q_s * 2q_kHz; +constexpr auto q3 = 10_q_s * 2_q_kHz; static_assert(std::is_same_v, std::int64_t>>); static_assert(q3.count() == 20); // comparators -static_assert(2q_m + 1q_m == 3q_m); -static_assert(!(2q_m + 2q_m == 3q_m)); -static_assert(2q_m + 2q_m != 3q_m); -static_assert(!(2q_m + 2q_m != 4q_m)); -static_assert(2q_m > 1q_m); -static_assert(!(1q_m > 1q_m)); -static_assert(1q_m < 2q_m); -static_assert(!(2q_m < 2q_m)); -static_assert(2q_m >= 1q_m); -static_assert(2q_m >= 2q_m); -static_assert(!(2q_m >= 3q_m)); -static_assert(1q_m <= 2q_m); -static_assert(2q_m <= 2q_m); -static_assert(!(3q_m <= 2q_m)); +static_assert(2_q_m + 1_q_m == 3_q_m); +static_assert(!(2_q_m + 2_q_m == 3_q_m)); +static_assert(2_q_m + 2_q_m != 3_q_m); +static_assert(!(2_q_m + 2_q_m != 4_q_m)); +static_assert(2_q_m > 1_q_m); +static_assert(!(1_q_m > 1_q_m)); +static_assert(1_q_m < 2_q_m); +static_assert(!(2_q_m < 2_q_m)); +static_assert(2_q_m >= 1_q_m); +static_assert(2_q_m >= 2_q_m); +static_assert(!(2_q_m >= 3_q_m)); +static_assert(1_q_m <= 2_q_m); +static_assert(2_q_m <= 2_q_m); +static_assert(!(3_q_m <= 2_q_m)); -static_assert(3q_m == 3.0q_m); -static_assert(3q_m != 3.14q_m); -static_assert(2q_m > 1.0q_m); -static_assert(1.0q_m < 2q_m); -static_assert(2.0q_m >= 1q_m); -static_assert(1q_m <= 2.0q_m); +static_assert(3_q_m == 3.0_q_m); +static_assert(3_q_m != 3.14_q_m); +static_assert(2_q_m > 1.0_q_m); +static_assert(1.0_q_m < 2_q_m); +static_assert(2.0_q_m >= 1_q_m); +static_assert(1_q_m <= 2.0_q_m); -static_assert(1000q_m == 1q_km); -static_assert(1001q_m != 1q_km); -static_assert(1001q_m > 1q_km); -static_assert(999q_m < 1q_km); -static_assert(1000q_m >= 1q_km); -static_assert(1000q_m <= 1q_km); +static_assert(1000_q_m == 1_q_km); +static_assert(1001_q_m != 1_q_km); +static_assert(1001_q_m > 1_q_km); +static_assert(999_q_m < 1_q_km); +static_assert(1000_q_m >= 1_q_km); +static_assert(1000_q_m <= 1_q_km); // alias units -static_assert(2q_l + 2q_ml == 2002q_ml); -static_assert(2q_l + 2q_ml == 2002q_cm3); -static_assert(2q_l + 2q_cm3 == 2002q_ml); -static_assert(2q_dm3 + 2q_cm3 == 2002q_ml); +static_assert(2_q_l + 2_q_ml == 2002_q_ml); +static_assert(2_q_l + 2_q_ml == 2002_q_cm3); +static_assert(2_q_l + 2_q_cm3 == 2002_q_ml); +static_assert(2_q_dm3 + 2_q_cm3 == 2002_q_ml); // is_quantity @@ -261,10 +261,10 @@ static_assert(is_same_v, length); -static_assert(std::equality_comparable_with); -static_assert(0q_m == 0q_ft_us); -static_assert(std::equality_comparable_with); +static_assert(std::equality_comparable); +static_assert(std::equality_comparable_with); +static_assert(0_q_m == 0_q_ft_us); +static_assert(std::equality_comparable_with); static_assert(std::equality_comparable_with, int>); static_assert(std::equality_comparable_with, double>); static_assert(std::equality_comparable_with, int>); @@ -272,14 +272,14 @@ static_assert(!std::equality_comparable_with, double>); // quantity_cast -static_assert(is_same_v>(2q_km))::unit, metre>); +static_assert(is_same_v>(2_q_km))::unit, metre>); -static_assert(quantity_cast>(2q_km).count() == 2000); -static_assert(quantity_cast>(2000q_m).count() == 2); -static_assert(quantity_cast>(1.23q_m).count() == 1); -static_assert(quantity_cast(2q_km).count() == 2000); -static_assert(quantity_cast(2000q_m).count() == 2); -static_assert(quantity_cast(1.23q_m).count() == 1); +static_assert(quantity_cast>(2_q_km).count() == 2000); +static_assert(quantity_cast>(2000_q_m).count() == 2); +static_assert(quantity_cast>(1.23_q_m).count() == 1); +static_assert(quantity_cast(2_q_km).count() == 2000); +static_assert(quantity_cast(2000_q_m).count() == 2); +static_assert(quantity_cast(1.23_q_m).count() == 1); // dimensionless @@ -308,37 +308,37 @@ concept invalid_dimensionless_operations = requires }; static_assert(invalid_dimensionless_operations); -static_assert(std::is_same_v>); +static_assert(std::is_same_v>); -static_assert(quantity_cast(50.q_m / 100.q_m).count() == 50); -static_assert(50.q_m / 100.q_m == dimensionless(50)); +static_assert(quantity_cast(50._q_m / 100._q_m).count() == 50); +static_assert(50._q_m / 100._q_m == dimensionless(50)); static_assert(dimensionless(dimensionless(50)).count() == 0.5); // time -static_assert(1q_h == 3600q_s); +static_assert(1_q_h == 3600_q_s); template -concept no_crossdimensional_equality = !requires { 1q_s == length(1); }; +concept no_crossdimensional_equality = !requires { 1_q_s == length(1); }; static_assert(no_crossdimensional_equality); // length -static_assert(1q_km == 1000q_m); -static_assert(1q_km + 1q_m == 1001q_m); -static_assert(10q_km / 5q_km == 2); -static_assert(10q_km / 2 == 5q_km); +static_assert(1_q_km == 1000_q_m); +static_assert(1_q_km + 1_q_m == 1001_q_m); +static_assert(10_q_km / 5_q_km == 2); +static_assert(10_q_km / 2 == 5_q_km); // speed -static_assert(10q_m / 5q_s == 2q_m_per_s); -static_assert(10 / 5q_s * 1q_m == 2q_m_per_s); -static_assert(1q_km / 1q_s == 1000q_m_per_s); -static_assert(2q_km_per_h * 2q_h == 4q_km); -static_assert(2q_km / 2q_km_per_h == 1q_h); +static_assert(10_q_m / 5_q_s == 2_q_m_per_s); +static_assert(10 / 5_q_s * 1_q_m == 2_q_m_per_s); +static_assert(1_q_km / 1_q_s == 1000_q_m_per_s); +static_assert(2_q_km_per_h * 2_q_h == 4_q_km); +static_assert(2_q_km / 2_q_km_per_h == 1_q_h); -static_assert(is_same_v(2q_m)), decltype(4q_m2)>); +static_assert(is_same_v(2_q_m)), decltype(4_q_m2)>); } // namespace diff --git a/test/unit_test/static/si_cgs_test.cpp b/test/unit_test/static/si_cgs_test.cpp index f828a691..73a1069e 100644 --- a/test/unit_test/static/si_cgs_test.cpp +++ b/test/unit_test/static/si_cgs_test.cpp @@ -61,15 +61,15 @@ namespace si_test { using namespace units::physical::si::literals; -static_assert(cgs::length(100) == 1q_m); -static_assert(cgs::mass(1'000) == 1q_kg); -static_assert(cgs::time(1) == 1q_s); -static_assert(cgs::speed(100) == 1q_m_per_s); -static_assert(cgs::acceleration(100) == 1q_m_per_s2); -static_assert(cgs::force(100'000) == 1q_N); -static_assert(cgs::energy(10'000'000) == 1q_J); -static_assert(cgs::power(10'000'000) == 1q_W); -static_assert(cgs::pressure(10) == 1q_Pa); +static_assert(cgs::length(100) == 1_q_m); +static_assert(cgs::mass(1'000) == 1_q_kg); +static_assert(cgs::time(1) == 1_q_s); +static_assert(cgs::speed(100) == 1_q_m_per_s); +static_assert(cgs::acceleration(100) == 1_q_m_per_s2); +static_assert(cgs::force(100'000) == 1_q_N); +static_assert(cgs::energy(10'000'000) == 1_q_J); +static_assert(cgs::power(10'000'000) == 1_q_W); +static_assert(cgs::pressure(10) == 1_q_Pa); } @@ -77,15 +77,15 @@ namespace cgs_test { using namespace units::physical::cgs::literals; -static_assert(100q_cm == si::length(1)); -static_assert(1'000q_g == si::mass(1)); -static_assert(1q_s == si::time(1)); -static_assert(100q_cm_per_s == si::speed(1)); -static_assert(100q_Gal == si::acceleration(1)); -static_assert(100'000q_dyn == si::force(1)); -static_assert(10'000'000q_erg == si::energy(1)); -static_assert(10'000'000q_erg_per_s == si::power(1)); -static_assert(10q_Ba == si::pressure(1)); +static_assert(100_q_cm == si::length(1)); +static_assert(1'000_q_g == si::mass(1)); +static_assert(1_q_s == si::time(1)); +static_assert(100_q_cm_per_s == si::speed(1)); +static_assert(100_q_Gal == si::acceleration(1)); +static_assert(100'000_q_dyn == si::force(1)); +static_assert(10'000'000_q_erg == si::energy(1)); +static_assert(10'000'000_q_erg_per_s == si::power(1)); +static_assert(10_q_Ba == si::pressure(1)); } @@ -94,15 +94,15 @@ namespace both_test { using namespace units::physical::si::literals; using namespace units::physical::cgs::literals; -// static_assert(100q_cm == 1q_m); // ambiguous -// static_assert(1'000q_g == 1q_kg); // ambiguous -static_assert(1q_s == 1q_s); -static_assert(100q_cm_per_s == 1q_m_per_s); -static_assert(100q_Gal == 1q_m_per_s2); -static_assert(100'000q_dyn == 1q_N); -static_assert(10'000'000q_erg == 1q_J); -static_assert(10'000'000q_erg_per_s == 1q_W); -static_assert(10q_Ba == quantity_cast(1q_Pa)); +// static_assert(100_q_cm == 1_q_m); // ambiguous +// static_assert(1'000_q_g == 1_q_kg); // ambiguous +static_assert(1_q_s == 1_q_s); +static_assert(100_q_cm_per_s == 1_q_m_per_s); +static_assert(100_q_Gal == 1_q_m_per_s2); +static_assert(100'000_q_dyn == 1_q_N); +static_assert(10'000'000_q_erg == 1_q_J); +static_assert(10'000'000_q_erg_per_s == 1_q_W); +static_assert(10_q_Ba == quantity_cast(1_q_Pa)); } @@ -110,41 +110,41 @@ namespace cgs_test { // addition -// static_assert(100q_cm + si::length(1) == si::length(2)); // should not compile (different dimensions) -// static_assert(si::length(1) + 100q_cm == si::length(2)); // should not compile (different dimensions) -static_assert(quantity_cast>(100q_cm) + si::length(1) == si::length(2)); -static_assert(si::length(1) + quantity_cast>(100q_cm) == si::length(2)); -static_assert(100q_cm + quantity_cast>(si::length(1)) == 200q_cm); -static_assert(quantity_cast>(si::length(1)) + 100q_cm == 200q_cm); +// static_assert(100_q_cm + si::length(1) == si::length(2)); // should not compile (different dimensions) +// static_assert(si::length(1) + 100_q_cm == si::length(2)); // should not compile (different dimensions) +static_assert(quantity_cast>(100_q_cm) + si::length(1) == si::length(2)); +static_assert(si::length(1) + quantity_cast>(100_q_cm) == si::length(2)); +static_assert(100_q_cm + quantity_cast>(si::length(1)) == 200_q_cm); +static_assert(quantity_cast>(si::length(1)) + 100_q_cm == 200_q_cm); // substraction -// static_assert(500q_cm - si::length(1) == si::length(4)); // should not compile (different dimensions) -// static_assert(si::length(5) - 100q_cm == si::length(4)); // should not compile (different dimensions) -static_assert(quantity_cast>(500q_cm) - si::length(1) == si::length(4)); -static_assert(si::length(5) - quantity_cast>(100q_cm) == si::length(4)); -static_assert(500q_cm - quantity_cast>(si::length(1)) == 400q_cm); -static_assert(quantity_cast>(si::length(5)) - 100q_cm == 400q_cm); +// static_assert(500_q_cm - si::length(1) == si::length(4)); // should not compile (different dimensions) +// static_assert(si::length(5) - 100_q_cm == si::length(4)); // should not compile (different dimensions) +static_assert(quantity_cast>(500_q_cm) - si::length(1) == si::length(4)); +static_assert(si::length(5) - quantity_cast>(100_q_cm) == si::length(4)); +static_assert(500_q_cm - quantity_cast>(si::length(1)) == 400_q_cm); +static_assert(quantity_cast>(si::length(5)) - 100_q_cm == 400_q_cm); // multiplication -// static_assert(200q_cm * si::length(2) == si::area(4)); // should not compile (unknown dimension) +// static_assert(200_q_cm * si::length(2) == si::area(4)); // should not compile (unknown dimension) -static_assert(quantity_cast(200.q_cm) * si::length(2) == si::area(4)); -static_assert(200.q_cm * quantity_cast(si::length(2)) == 40'000q_cm2); +static_assert(quantity_cast(200._q_cm) * si::length(2) == si::area(4)); +static_assert(200._q_cm * quantity_cast(si::length(2)) == 40'000_q_cm2); // TODO Add support for quantity_cast on an unknown_dimension? -// static_assert(quantity_cast>(200q_cm * si::length(2)) == si::area(4)); -// static_assert(quantity_cast(200q_cm * si::length(2)) == si::area(4)); -// static_assert(quantity_cast>(200q_cm * si::length(2)) == 40'000q_sq_cm); -// static_assert(quantity_cast(200q_cm * si::length(2)) == 40'000q_sq_cm); +// static_assert(quantity_cast>(200_q_cm * si::length(2)) == si::area(4)); +// static_assert(quantity_cast(200_q_cm * si::length(2)) == si::area(4)); +// static_assert(quantity_cast>(200_q_cm * si::length(2)) == 40'000_q_sq_cm); +// static_assert(quantity_cast(200_q_cm * si::length(2)) == 40'000_q_sq_cm); // division -// static_assert(si::area(4) / 200q_cm == si::length(2)); // should not compile (unknown dimension) +// static_assert(si::area(4) / 200_q_cm == si::length(2)); // should not compile (unknown dimension) -static_assert(si::area(4) / quantity_cast>(200q_cm) == si::length(2)); -static_assert(quantity_cast>(si::area(4)) / 200.q_cm == 200q_cm); +static_assert(si::area(4) / quantity_cast>(200_q_cm) == si::length(2)); +static_assert(quantity_cast>(si::area(4)) / 200._q_cm == 200_q_cm); } diff --git a/test/unit_test/static/si_fps_test.cpp b/test/unit_test/static/si_fps_test.cpp index e058b593..20062022 100644 --- a/test/unit_test/static/si_fps_test.cpp +++ b/test/unit_test/static/si_fps_test.cpp @@ -65,40 +65,40 @@ namespace si_literals { using namespace units::physical::si::literals; -static_assert(fps::length(1) == 0.3048q_m); -static_assert(fps::mass(1) == 0.45359237q_kg); -static_assert(fps::time(1) == 1q_s); -static_assert(fps::speed(1) == 0.3048q_m_per_s); -static_assert(fps::area(1) == 0.09290304q_m2); -static_assert(fps::acceleration(1) == 0.3048q_m_per_s2); -static_assert(fps::force(1) > 0.138254q_N && - fps::force(1) < 0.138256q_N); -static_assert(fps::energy(1) > 0.042140110093804q_J && - fps::energy(1) < 0.042140110093806q_J); -static_assert(fps::power(1) > 0.042140110093804q_W && - fps::power(1) < 0.042140110093806q_W); -static_assert(fps::pressure(1) > 1.4881639435q_Pa && - fps::pressure(1) < 1.4881639437q_Pa); +static_assert(fps::length(1) == 0.3048_q_m); +static_assert(fps::mass(1) == 0.45359237_q_kg); +static_assert(fps::time(1) == 1_q_s); +static_assert(fps::speed(1) == 0.3048_q_m_per_s); +static_assert(fps::area(1) == 0.09290304_q_m2); +static_assert(fps::acceleration(1) == 0.3048_q_m_per_s2); +static_assert(fps::force(1) > 0.138254_q_N && + fps::force(1) < 0.138256_q_N); +static_assert(fps::energy(1) > 0.042140110093804_q_J && + fps::energy(1) < 0.042140110093806_q_J); +static_assert(fps::power(1) > 0.042140110093804_q_W && + fps::power(1) < 0.042140110093806_q_W); +static_assert(fps::pressure(1) > 1.4881639435_q_Pa && + fps::pressure(1) < 1.4881639437_q_Pa); } namespace fps_literals { using namespace units::physical::fps::literals; -static_assert(1q_ft == si::length(0.3048)); -static_assert(1q_lb == si::mass(0.45359237)); -static_assert(1q_s == si::time(1)); -static_assert(1q_ft_per_s == si::speed(0.3048)); -static_assert(1q_ft2 == si::area(0.09290304)); -static_assert(1q_ft_per_s2 == si::acceleration(0.3048)); -static_assert(1q_pdl > si::force(0.138254) && - 1q_pdl < si::force(0.138256)); -static_assert(1q_ft_pdl > si::energy(0.042140110093804) && - 1q_ft_pdl < si::energy(0.042140110093806)); -static_assert(1q_ft_pdl_per_s > si::power(0.042140110093804) && - 1q_ft_pdl_per_s < si::power(0.042140110093806)); -static_assert(1q_pdl_per_ft2> si::pressure(1.4881639435) && - 1q_pdl_per_ft2 < si::pressure(1.4881639437)); +static_assert(1_q_ft == si::length(0.3048)); +static_assert(1_q_lb == si::mass(0.45359237)); +static_assert(1_q_s == si::time(1)); +static_assert(1_q_ft_per_s == si::speed(0.3048)); +static_assert(1_q_ft2 == si::area(0.09290304)); +static_assert(1_q_ft_per_s2 == si::acceleration(0.3048)); +static_assert(1_q_pdl > si::force(0.138254) && + 1_q_pdl < si::force(0.138256)); +static_assert(1_q_ft_pdl > si::energy(0.042140110093804) && + 1_q_ft_pdl < si::energy(0.042140110093806)); +static_assert(1_q_ft_pdl_per_s > si::power(0.042140110093804) && + 1_q_ft_pdl_per_s < si::power(0.042140110093806)); +static_assert(1_q_pdl_per_ft2> si::pressure(1.4881639435) && + 1_q_pdl_per_ft2 < si::pressure(1.4881639437)); } namespace fps_plus_si_literals { @@ -106,22 +106,22 @@ namespace fps_plus_si_literals { using namespace units::physical::si::literals; using namespace units::physical::fps::literals; -// static_assert(100q_cm == 1q_m); // ambiguous -// static_assert(1'000q_g == 1q_kg); // ambiguous -static_assert(1q_ft == 0.3048q_m); -static_assert(1q_lb == 0.45359237q_kg); -static_assert(1q_s == 1q_s); -static_assert(1q_ft_per_s == 0.3048q_m_per_s); -static_assert(1q_ft2 == 0.09290304q_m2); -static_assert(1q_ft_per_s2 == 0.3048q_m_per_s2); -static_assert(1q_pdl > 0.138254q_N && - 1q_pdl < 0.138256q_N); -static_assert(1q_ft_pdl > 0.042140110093804q_J && - 1q_ft_pdl < 0.042140110093806q_J); -static_assert(1q_ft_pdl_per_s > 0.042140110093804q_W && - 1q_ft_pdl_per_s < 0.042140110093806q_W); -static_assert(1q_pdl_per_ft2> 1.4881639435q_Pa && - 1q_pdl_per_ft2 <1.4881639437q_Pa); +// static_assert(100_q_cm == 1_q_m); // ambiguous +// static_assert(1'000_q_g == 1_q_kg); // ambiguous +static_assert(1_q_ft == 0.3048_q_m); +static_assert(1_q_lb == 0.45359237_q_kg); +static_assert(1_q_s == 1_q_s); +static_assert(1_q_ft_per_s == 0.3048_q_m_per_s); +static_assert(1_q_ft2 == 0.09290304_q_m2); +static_assert(1_q_ft_per_s2 == 0.3048_q_m_per_s2); +static_assert(1_q_pdl > 0.138254_q_N && + 1_q_pdl < 0.138256_q_N); +static_assert(1_q_ft_pdl > 0.042140110093804_q_J && + 1_q_ft_pdl < 0.042140110093806_q_J); +static_assert(1_q_ft_pdl_per_s > 0.042140110093804_q_W && + 1_q_ft_pdl_per_s < 0.042140110093806_q_W); +static_assert(1_q_pdl_per_ft2> 1.4881639435_q_Pa && + 1_q_pdl_per_ft2 <1.4881639437_q_Pa); } @@ -131,35 +131,35 @@ using namespace units::physical::fps::literals; // addition -// static_assert(si::length(1) + 1q_ft == si::length(1.3048)); // should not compile (different dimensions) -// static_assert(1q_ft / 0.3048 + si::length(1) == si::length(1.3048)); // should not compile (different dimensions) -static_assert(quantity_cast>(1.q_ft / 0.3048) + si::length(1) == si::length(2)); // 1 m in ft + 1 m -static_assert(si::length(1) + quantity_cast>(1.q_ft / 0.3048) == si::length(2)); // 1 m + 1 m in ft -static_assert(1q_ft + quantity_cast>(si::length(0.3048)) == 2q_ft); // 1 ft + 1 ft in m -static_assert(quantity_cast>(si::length(0.3048)) + 1q_ft == 2q_ft); // 1 ft in m + 1 ft +// static_assert(si::length(1) + 1_q_ft == si::length(1.3048)); // should not compile (different dimensions) +// static_assert(1_q_ft / 0.3048 + si::length(1) == si::length(1.3048)); // should not compile (different dimensions) +static_assert(quantity_cast>(1._q_ft / 0.3048) + si::length(1) == si::length(2)); // 1 m in ft + 1 m +static_assert(si::length(1) + quantity_cast>(1._q_ft / 0.3048) == si::length(2)); // 1 m + 1 m in ft +static_assert(1_q_ft + quantity_cast>(si::length(0.3048)) == 2_q_ft); // 1 ft + 1 ft in m +static_assert(quantity_cast>(si::length(0.3048)) + 1_q_ft == 2_q_ft); // 1 ft in m + 1 ft // substraction -// static_assert(1q_ft - si::length(1) == -si::length(0.6952)); // should not compile (different dimensions) -// static_assert(si::length(1) - 1q_ft == si::length(0.6952)); // should not compile (different dimensions) -static_assert(quantity_cast>(6.q_ft) - si::length(1) > si::length(0.8287) && - quantity_cast>(6.q_ft) - si::length(1) < si::length(0.8289)); // 6 ft in m - 1 m = ... m -static_assert(si::length(5) - quantity_cast>(6q_ft) == si::length(3.1712)); // 5 m - 6 ft in m = ... -static_assert(6.q_ft - quantity_cast>(si::length(0.3048)) == 5.q_ft); // 6 ft - 1 ft in m = 5 ft -static_assert(quantity_cast>(si::length(1.8288)) - 1.q_ft == 5.q_ft); // 6 ft in m - 1 ft = 5 ft +// static_assert(1_q_ft - si::length(1) == -si::length(0.6952)); // should not compile (different dimensions) +// static_assert(si::length(1) - 1_q_ft == si::length(0.6952)); // should not compile (different dimensions) +static_assert(quantity_cast>(6._q_ft) - si::length(1) > si::length(0.8287) && + quantity_cast>(6._q_ft) - si::length(1) < si::length(0.8289)); // 6 ft in m - 1 m = ... m +static_assert(si::length(5) - quantity_cast>(6_q_ft) == si::length(3.1712)); // 5 m - 6 ft in m = ... +static_assert(6._q_ft - quantity_cast>(si::length(0.3048)) == 5._q_ft); // 6 ft - 1 ft in m = 5 ft +static_assert(quantity_cast>(si::length(1.8288)) - 1._q_ft == 5._q_ft); // 6 ft in m - 1 ft = 5 ft // multiplication -// static_assert(2q_ft * si::length(2) == si::area(1.2192)); // should not compile (unknown dimension) -// static_assert(quantity_cast>(2.q_ft) * si::length(2) == si::area(1.2192)); -static_assert(quantity_cast>(2.q_ft) * si::length(0.6096) == si::area(0.371612160)); // 2 ft * 2 ft == 4 sq ft -static_assert(2.q_ft * quantity_cast>(si::length(0.6096)) == 4.q_ft2); +// static_assert(2_q_ft * si::length(2) == si::area(1.2192)); // should not compile (unknown dimension) +// static_assert(quantity_cast>(2._q_ft) * si::length(2) == si::area(1.2192)); +static_assert(quantity_cast>(2._q_ft) * si::length(0.6096) == si::area(0.371612160)); // 2 ft * 2 ft == 4 sq ft +static_assert(2._q_ft * quantity_cast>(si::length(0.6096)) == 4._q_ft2); // division -// static_assert(si::area(4) / 200q_cm == si::length(2)); // should not compile (unknown dimension) -static_assert(si::area(1.48644864) / quantity_cast>(4q_ft) == si::length(1.2192)); // 16 ft2 / 4 ft = 4 ft -static_assert(quantity_cast>(si::area(1.48644864)) / 4.q_ft == 4.q_ft); // 16 ft2 / 4 ft = 4 ft +// static_assert(si::area(4) / 200_q_cm == si::length(2)); // should not compile (unknown dimension) +static_assert(si::area(1.48644864) / quantity_cast>(4_q_ft) == si::length(1.2192)); // 16 ft2 / 4 ft = 4 ft +static_assert(quantity_cast>(si::area(1.48644864)) / 4._q_ft == 4._q_ft); // 16 ft2 / 4 ft = 4 ft } diff --git a/test/unit_test/static/si_test.cpp b/test/unit_test/static/si_test.cpp index 6c12779a..be55ece9 100644 --- a/test/unit_test/static/si_test.cpp +++ b/test/unit_test/static/si_test.cpp @@ -32,18 +32,18 @@ using namespace units::physical::si; // length -static_assert(1q_km == 1000q_m); -static_assert(1q_m == 100q_cm); -static_assert(1q_m == 10q_dm); -static_assert(1q_m == 1000q_mm); -static_assert(1q_hm == 100q_m); -static_assert(1q_au == 149'597'870'700q_m); -static_assert(1q_km + 1q_m == 1001q_m); -static_assert(10q_km / 5q_km == 2); -static_assert(10q_km / 5q_km < 3); -static_assert(100q_mm / 5q_cm == dimensionless>(20)); -static_assert(100q_mm / 5q_cm == dimensionless(2)); -static_assert(10q_km / 2 == 5q_km); +static_assert(1_q_km == 1000_q_m); +static_assert(1_q_m == 100_q_cm); +static_assert(1_q_m == 10_q_dm); +static_assert(1_q_m == 1000_q_mm); +static_assert(1_q_hm == 100_q_m); +static_assert(1_q_au == 149'597'870'700_q_m); +static_assert(1_q_km + 1_q_m == 1001_q_m); +static_assert(10_q_km / 5_q_km == 2); +static_assert(10_q_km / 5_q_km < 3); +static_assert(100_q_mm / 5_q_cm == dimensionless>(20)); +static_assert(100_q_mm / 5_q_cm == dimensionless(2)); +static_assert(10_q_km / 2 == 5_q_km); static_assert(millimetre::symbol == "mm"); static_assert(centimetre::symbol == "cm"); @@ -52,9 +52,9 @@ static_assert(kilometre::symbol == "km"); // mass -static_assert(1q_kg == 1000q_g); -static_assert(1q_t == 1000q_kg); -static_assert(1q_kt == 1000000q_kg); +static_assert(1_q_kg == 1000_q_g); +static_assert(1_q_t == 1000_q_kg); +static_assert(1_q_kt == 1000000_q_kg); static_assert(kilogram::symbol == "kg"); static_assert(tonne::symbol == "t"); @@ -62,14 +62,14 @@ static_assert(kilotonne::symbol == "kt"); // time -static_assert(1q_us == 1000q_ns); -static_assert(1q_ms == 1000q_us); -static_assert(1q_s == 1000q_ms); -static_assert(1q_min == 60q_s); -static_assert(1q_h == 60q_min); -static_assert(1q_h == 3600q_s); -static_assert(1q_d == 24q_h); -static_assert(1q_d == 86'400q_s); +static_assert(1_q_us == 1000_q_ns); +static_assert(1_q_ms == 1000_q_us); +static_assert(1_q_s == 1000_q_ms); +static_assert(1_q_min == 60_q_s); +static_assert(1_q_h == 60_q_min); +static_assert(1_q_h == 3600_q_s); +static_assert(1_q_d == 24_q_h); +static_assert(1_q_d == 86'400_q_s); static_assert(nanosecond::symbol == "ns"); static_assert(microsecond::symbol == basic_symbol_text("µs", "us")); @@ -87,11 +87,11 @@ static_assert(millisecond::symbol == "ms"); // frequency -static_assert(1000q_mHz == 1q_Hz); -static_assert(1000q_Hz == 1q_kHz); -static_assert(1000q_kHz == 1q_MHz); -static_assert(1000q_MHz == 1q_GHz); -static_assert(1000q_GHz == 1q_THz); +static_assert(1000_q_mHz == 1_q_Hz); +static_assert(1000_q_Hz == 1_q_kHz); +static_assert(1000_q_kHz == 1_q_MHz); +static_assert(1000_q_MHz == 1_q_GHz); +static_assert(1000_q_GHz == 1_q_THz); static_assert(millihertz::symbol == "mHz"); static_assert(kilohertz::symbol == "kHz"); @@ -99,89 +99,89 @@ static_assert(megahertz::symbol == "MHz"); static_assert(gigahertz::symbol == "GHz"); static_assert(terahertz::symbol == "THz"); -static_assert(2 / 1q_s == 2q_Hz); -static_assert(120 / 1q_min == 2q_Hz); -static_assert(1000 / 1q_s == 1q_kHz); -static_assert(1 / 1q_ms == 1q_kHz); -static_assert(3.2q_GHz == 3'200'000'000q_Hz); -static_assert((10q_Hz * 1q_min).count() == 10); -static_assert(10q_Hz * 1q_min == dimensionless>(10)); -static_assert(10q_Hz * 1q_min == dimensionless(600)); -static_assert(2 / 1q_Hz == 2q_s); +static_assert(2 / 1_q_s == 2_q_Hz); +static_assert(120 / 1_q_min == 2_q_Hz); +static_assert(1000 / 1_q_s == 1_q_kHz); +static_assert(1 / 1_q_ms == 1_q_kHz); +static_assert(3.2_q_GHz == 3'200'000'000_q_Hz); +static_assert((10_q_Hz * 1_q_min).count() == 10); +static_assert(10_q_Hz * 1_q_min == dimensionless>(10)); +static_assert(10_q_Hz * 1_q_min == dimensionless(600)); +static_assert(2 / 1_q_Hz == 2_q_s); // force -static_assert(10q_kg * 10q_m_per_s2 == 100q_N); -static_assert(100q_N / 1q_m_per_s2 == 100q_kg); -static_assert(100q_N / 1q_kg == 100q_m_per_s2); +static_assert(10_q_kg * 10_q_m_per_s2 == 100_q_N); +static_assert(100_q_N / 1_q_m_per_s2 == 100_q_kg); +static_assert(100_q_N / 1_q_kg == 100_q_m_per_s2); // pressure -static_assert(10q_N / 10q_m2 == 1q_Pa); -static_assert(10q_N / 1q_Pa == 10q_m2); -static_assert(1q_Pa * 10q_m2 == 10q_N); +static_assert(10_q_N / 10_q_m2 == 1_q_Pa); +static_assert(10_q_N / 1_q_Pa == 10_q_m2); +static_assert(1_q_Pa * 10_q_m2 == 10_q_N); // energy -static_assert(1000q_mJ == 1q_J); -static_assert(1000q_J == 1q_kJ); -static_assert(1000q_kJ == 1q_MJ); -static_assert(1000q_MJ == 1q_GJ); +static_assert(1000_q_mJ == 1_q_J); +static_assert(1000_q_J == 1_q_kJ); +static_assert(1000_q_kJ == 1_q_MJ); +static_assert(1000_q_MJ == 1_q_GJ); static_assert(millijoule::symbol == "mJ"); static_assert(kilojoule::symbol == "kJ"); static_assert(megajoule::symbol == "MJ"); static_assert(gigajoule::symbol == "GJ"); -static_assert(10q_N * 10q_m == 100q_J); -static_assert(100q_J / 10q_m == 10q_N); -static_assert(100q_J / 10q_N == 10q_m); -static_assert(10q_Pa * 10q_m3 == 100q_J); -static_assert(100q_J / 10q_Pa == 10q_m3); -static_assert(100q_J / 10q_m3 == 10q_Pa); +static_assert(10_q_N * 10_q_m == 100_q_J); +static_assert(100_q_J / 10_q_m == 10_q_N); +static_assert(100_q_J / 10_q_N == 10_q_m); +static_assert(10_q_Pa * 10_q_m3 == 100_q_J); +static_assert(100_q_J / 10_q_Pa == 10_q_m3); +static_assert(100_q_J / 10_q_m3 == 10_q_Pa); // power -static_assert(1000q_mW == 1q_W); -static_assert(1000q_W == 1q_kW); -static_assert(1000q_kW == 1q_MW); -static_assert(1000q_MW == 1q_GW); +static_assert(1000_q_mW == 1_q_W); +static_assert(1000_q_W == 1_q_kW); +static_assert(1000_q_kW == 1_q_MW); +static_assert(1000_q_MW == 1_q_GW); static_assert(milliwatt::symbol == "mW"); static_assert(kilowatt::symbol == "kW"); static_assert(megawatt::symbol == "MW"); static_assert(gigawatt::symbol == "GW"); -static_assert(10q_J / 10q_s == 1q_W); -static_assert(1q_W * 10q_s == 10q_J); -static_assert(10q_J / 1q_W == 10q_s); +static_assert(10_q_J / 10_q_s == 1_q_W); +static_assert(1_q_W * 10_q_s == 10_q_J); +static_assert(10_q_J / 1_q_W == 10_q_s); // electric charge -static_assert(10q_A * 10q_s == 100q_C); -static_assert(100q_C / 10q_A == 10q_s); -static_assert(100q_C / 10q_s == 10q_A); +static_assert(10_q_A * 10_q_s == 100_q_C); +static_assert(100_q_C / 10_q_A == 10_q_s); +static_assert(100_q_C / 10_q_s == 10_q_A); // voltage -static_assert(10q_W / 10q_A == 1q_V); -static_assert(10q_W / 1q_V == 10q_A); -static_assert(1q_V * 10q_A == 10q_W); -static_assert(10q_J / 10q_C == 1q_V); -static_assert(10q_J / 1q_V == 10q_C); -static_assert(10q_C * 1q_V == 10q_J); +static_assert(10_q_W / 10_q_A == 1_q_V); +static_assert(10_q_W / 1_q_V == 10_q_A); +static_assert(1_q_V * 10_q_A == 10_q_W); +static_assert(10_q_J / 10_q_C == 1_q_V); +static_assert(10_q_J / 1_q_V == 10_q_C); +static_assert(10_q_C * 1_q_V == 10_q_J); // capacitance -static_assert(10q_C / 10q_V == 1q_F); -static_assert(10q_C / 1q_F == 10q_V); -static_assert(10q_V * 1q_F == 10q_C); +static_assert(10_q_C / 10_q_V == 1_q_F); +static_assert(10_q_C / 1_q_F == 10_q_V); +static_assert(10_q_V * 1_q_F == 10_q_C); // magnetic induction -static_assert(1q_T == 1q_V * 1q_s / (1q_m * 1q_m)); -static_assert(10q_T / 1q_s == 10q_V / (1q_m * 1q_m)); -static_assert(10q_T * (1q_m * 1q_m) == 10q_s * 1q_V); -static_assert(10q_N / (1q_A * 1q_m) == 10q_T); +static_assert(1_q_T == 1_q_V * 1_q_s / (1_q_m * 1_q_m)); +static_assert(10_q_T / 1_q_s == 10_q_V / (1_q_m * 1_q_m)); +static_assert(10_q_T * (1_q_m * 1_q_m) == 10_q_s * 1_q_V); +static_assert(10_q_N / (1_q_A * 1_q_m) == 10_q_T); static_assert(millitesla::symbol == "mT"); static_assert(microtesla::symbol == basic_symbol_text("µT", "uT")); @@ -190,9 +190,9 @@ static_assert(picotesla::symbol == "pT"); // magnetic flux -static_assert(1q_Wb == 1q_T * 1q_m2); -static_assert(1q_J == 1q_Wb * 1q_A); -static_assert(1q_N * 1q_s == 1q_Wb * 1q_C / 1q_m); +static_assert(1_q_Wb == 1_q_T * 1_q_m2); +static_assert(1_q_J == 1_q_Wb * 1_q_A); +static_assert(1_q_N * 1_q_s == 1_q_Wb * 1_q_C / 1_q_m); static_assert(milliweber::symbol == "mWb"); static_assert(microweber::symbol == basic_symbol_text("µWb", "uWb")); @@ -201,9 +201,9 @@ static_assert(picoweber::symbol == "pWb"); // inductance -static_assert(1q_H == 1q_Wb / 1q_A); -static_assert(1q_V == 1q_H * 1q_A / 1q_s); -static_assert(1q_J == 1q_H * 1q_A * 1q_A); +static_assert(1_q_H == 1_q_Wb / 1_q_A); +static_assert(1_q_V == 1_q_H * 1_q_A / 1_q_s); +static_assert(1_q_J == 1_q_H * 1_q_A * 1_q_A); static_assert(millihenry::symbol == "mH"); static_assert(microhenry::symbol == basic_symbol_text("µH", "uH")); @@ -212,9 +212,9 @@ static_assert(picohenry::symbol == "pH"); // conductance -static_assert(1q_S * 1q_R == 1); -static_assert(1q_S == 1q_A / 1q_V); -static_assert(1q_W == 1q_A * 1q_A / 1q_S); +static_assert(1_q_S * 1_q_R == 1); +static_assert(1_q_S == 1_q_A / 1_q_V); +static_assert(1_q_W == 1_q_A * 1_q_A / 1_q_S); static_assert(millisiemens::symbol == "mS"); static_assert(microsiemens::symbol == basic_symbol_text("µS", "uS")); @@ -222,16 +222,16 @@ static_assert(nanosiemens::symbol == "nS"); // catalytic activity -static_assert(1q_kat == 1q_mol / 1q_s); -static_assert(1'000'000q_U == 1q_mol / 1q_min); +static_assert(1_q_kat == 1_q_mol / 1_q_s); +static_assert(1'000'000_q_U == 1_q_mol / 1_q_min); static_assert(katal::symbol == "kat"); static_assert(enzyme_unit::symbol == "U"); // absorbed dose -static_assert(1q_Gy == 1q_J / 1q_kg); -static_assert(9.q_W * 3q_s / 60q_kg == 450q_mGy); +static_assert(1_q_Gy == 1_q_J / 1_q_kg); +static_assert(9._q_W * 3_q_s / 60_q_kg == 450_q_mGy); static_assert(gray::symbol == "Gy"); static_assert(milligray::symbol == "mGy"); @@ -241,42 +241,42 @@ static_assert(kilogray::symbol == "kGy"); // speed -static_assert(is_same_v, std::int64_t>>); +static_assert(is_same_v, std::int64_t>>); -static_assert(10q_m / 5q_s == 2q_m_per_s); -static_assert(10 / 5q_s * 1q_m == 2q_m_per_s); -static_assert(1q_km / 1q_s == 1000q_m_per_s); -// static_assert(1q_km / 1q_h == 1q_km_per_h); // should not compile -static_assert(1.0q_km / 1q_h == 1q_km_per_h); -static_assert(1000.0q_m / 3600.0q_s == 1q_km_per_h); +static_assert(10_q_m / 5_q_s == 2_q_m_per_s); +static_assert(10 / 5_q_s * 1_q_m == 2_q_m_per_s); +static_assert(1_q_km / 1_q_s == 1000_q_m_per_s); +// static_assert(1_q_km / 1_q_h == 1_q_km_per_h); // should not compile +static_assert(1.0_q_km / 1_q_h == 1_q_km_per_h); +static_assert(1000.0_q_m / 3600.0_q_s == 1_q_km_per_h); -static_assert(2q_km_per_h * 2q_h == 4q_km); -// static_assert(2q_km_per_h * 15q_min == 500q_m); // should not compile -static_assert(2q_km_per_h * 15.0q_min == 500q_m); -static_assert(2.0q_km_per_h * 15q_min == 500q_m); +static_assert(2_q_km_per_h * 2_q_h == 4_q_km); +// static_assert(2_q_km_per_h * 15_q_min == 500_q_m); // should not compile +static_assert(2_q_km_per_h * 15.0_q_min == 500_q_m); +static_assert(2.0_q_km_per_h * 15_q_min == 500_q_m); -static_assert(2q_km / 2q_km_per_h == 1q_h); -// static_assert(2000q_m / 2q_km_per_h == 1q_h); // should not compile -static_assert(quantity_cast(2000q_m) / 2q_km_per_h == 1q_h); +static_assert(2_q_km / 2_q_km_per_h == 1_q_h); +// static_assert(2000_q_m / 2_q_km_per_h == 1_q_h); // should not compile +static_assert(quantity_cast(2000_q_m) / 2_q_km_per_h == 1_q_h); static_assert(detail::unit_text() == "m/s"); static_assert(kilometre_per_hour::symbol == "km/h"); // acceleration -static_assert(10q_m_per_s / 10q_s == 1q_m_per_s2); -static_assert(10q_m_per_s / 1q_m_per_s2 == 10q_s); -static_assert(1q_m_per_s2 * 10q_s == 10q_m_per_s); +static_assert(10_q_m_per_s / 10_q_s == 1_q_m_per_s2); +static_assert(10_q_m_per_s / 1_q_m_per_s2 == 10_q_s); +static_assert(1_q_m_per_s2 * 10_q_s == 10_q_m_per_s); static_assert(detail::unit_text() == basic_symbol_text("m/s²", "m/s^2")); // area -static_assert(10q_m * 10q_m == 100q_m2); -static_assert(100q_m2 / 10q_m == 10q_m); -static_assert(10q_km * 10q_km == 100q_km2); -static_assert(1q_m2 == 10'000q_cm2); -static_assert(1q_ha == 10'000q_m2); +static_assert(10_q_m * 10_q_m == 100_q_m2); +static_assert(100_q_m2 / 10_q_m == 10_q_m); +static_assert(10_q_km * 10_q_km == 100_q_km2); +static_assert(1_q_m2 == 10'000_q_cm2); +static_assert(1_q_ha == 10'000_q_m2); static_assert(hectare::symbol == "ha"); @@ -284,13 +284,13 @@ static_assert(detail::unit_text() == basic_symbol_text(" // volume -static_assert(1q_m * 1q_m * 1q_m == 1q_m3); -static_assert(10q_m2 * 10q_m == 100q_m3); -static_assert(10q_km * 10q_km * 10q_km == 1000q_km3); -static_assert(1q_m3 == 1'000'000q_cm3); -static_assert(1q_dm * 1q_dm * 1q_dm == 1q_l); -static_assert(1000q_l == 1q_m3); -static_assert(1q_kl == 1q_m3); +static_assert(1_q_m * 1_q_m * 1_q_m == 1_q_m3); +static_assert(10_q_m2 * 10_q_m == 100_q_m3); +static_assert(10_q_km * 10_q_km * 10_q_km == 1000_q_km3); +static_assert(1_q_m3 == 1'000'000_q_cm3); +static_assert(1_q_dm * 1_q_dm * 1_q_dm == 1_q_l); +static_assert(1000_q_l == 1_q_m3); +static_assert(1_q_kl == 1_q_m3); static_assert(litre::symbol == "l"); static_assert(kilolitre::symbol == "kl"); @@ -299,89 +299,89 @@ static_assert(detail::unit_text() == basic_symbol_text( /* ************** DERIVED DIMENSIONS IN TERMS OF OTHER UNITS **************** */ -static_assert(10q_N / 2q_m == 5q_N_per_m); -static_assert(10q_N / 5q_N_per_m == 2q_m); -static_assert(2q_m * 5q_N_per_m == 10q_N); +static_assert(10_q_N / 2_q_m == 5_q_N_per_m); +static_assert(10_q_N / 5_q_N_per_m == 2_q_m); +static_assert(2_q_m * 5_q_N_per_m == 10_q_N); static_assert(detail::unit_text() == "N/m"); // current density -static_assert(12q_A_per_m2 == 60q_A / 5q_m2); -static_assert(1q_A_per_m2 == 1q_S * 1q_V / 1q_m2); +static_assert(12_q_A_per_m2 == 60_q_A / 5_q_m2); +static_assert(1_q_A_per_m2 == 1_q_S * 1_q_V / 1_q_m2); static_assert(detail::unit_text() == basic_symbol_text("A/m²", "A/m^2")); // concentration -static_assert(1q_mol_per_m3 == 1q_kg_per_m3 * 1q_mol / 1q_kg); +static_assert(1_q_mol_per_m3 == 1_q_kg_per_m3 * 1_q_mol / 1_q_kg); static_assert(detail::unit_text() == basic_symbol_text("mol/m³", "mol/m^3")); // luminance -static_assert(1q_cd_per_m2 == 1q_cd / 1q_m2); +static_assert(1_q_cd_per_m2 == 1_q_cd / 1_q_m2); static_assert(detail::unit_text() == basic_symbol_text("cd/m²", "cd/m^2")); // dynamic viscosity -static_assert(1q_Pa_s == 1q_N * 1q_s / 1q_m2); +static_assert(1_q_Pa_s == 1_q_N * 1_q_s / 1_q_m2); static_assert(detail::unit_text() == basic_symbol_text("Pa ⋅ s", "Pa s")); // [specific|molar] heath capacity -static_assert(1q_J_per_K == 1q_J_per_kg_K * 1q_kg); -static_assert(1q_J_per_K * 1q_K == 1q_s * 1q_N * 1q_m_per_s); -static_assert(1q_J_per_mol_K == 1q_J_per_K / 1q_mol); +static_assert(1_q_J_per_K == 1_q_J_per_kg_K * 1_q_kg); +static_assert(1_q_J_per_K * 1_q_K == 1_q_s * 1_q_N * 1_q_m_per_s); +static_assert(1_q_J_per_mol_K == 1_q_J_per_K / 1_q_mol); static_assert(detail::unit_text() == "J/K"); static_assert(detail::unit_text() == basic_symbol_text("J ⋅ K⁻¹ ⋅ kg⁻¹", "J K^-1 kg^-1")); // thermal conductivity -static_assert(20q_W_per_m_K * 10q_m * 300q_K == 60'000q_W); +static_assert(20_q_W_per_m_K * 10_q_m * 300_q_K == 60'000_q_W); static_assert(detail::unit_text() == basic_symbol_text("W ⋅ m⁻¹ ⋅ K⁻¹", "W m^-1 K^-1")); // electric field strength -static_assert(100q_N/20q_C == 5q_V_per_m); -static_assert(1q_C * 10q_V_per_m * 3q_m == 30q_J); +static_assert(100_q_N/20_q_C == 5_q_V_per_m); +static_assert(1_q_C * 10_q_V_per_m * 3_q_m == 30_q_J); static_assert(detail::unit_text() == "V/m"); // [surface] charge density -static_assert(20.q_C / 40q_m3 == 0.5q_C_per_m3); -static_assert(10.q_C / 20q_m2 == 0.5q_C_per_m2); -static_assert(20.q_C_per_m3 == 10.q_C_per_m2 / 0.5q_m); -static_assert(1q_C / 1q_m / 1q_m == 1q_C / 1q_m2); -static_assert(1q_C_per_m2 == 1q_C_per_m3 * 1q_m); -static_assert(1q_V_per_m * 10q_C_per_m3 * 1q_m3 == 10q_N); +static_assert(20._q_C / 40_q_m3 == 0.5_q_C_per_m3); +static_assert(10._q_C / 20_q_m2 == 0.5_q_C_per_m2); +static_assert(20._q_C_per_m3 == 10._q_C_per_m2 / 0.5_q_m); +static_assert(1_q_C / 1_q_m / 1_q_m == 1_q_C / 1_q_m2); +static_assert(1_q_C_per_m2 == 1_q_C_per_m3 * 1_q_m); +static_assert(1_q_V_per_m * 10_q_C_per_m3 * 1_q_m3 == 10_q_N); static_assert(detail::unit_text() == basic_symbol_text("C/m³", "C/m^3")); static_assert(detail::unit_text() == basic_symbol_text("C/m²", "C/m^2")); // permittivity -static_assert(1q_F_per_m == 1q_F / 1q_m); -static_assert(1/(1q_F_per_m) * 1q_C * 1q_C / 1q_m2 == 1q_N); -static_assert(1q_C_per_m3 / 1q_F_per_m * 1q_m == 1q_V_per_m); +static_assert(1_q_F_per_m == 1_q_F / 1_q_m); +static_assert(1/(1_q_F_per_m) * 1_q_C * 1_q_C / 1_q_m2 == 1_q_N); +static_assert(1_q_C_per_m3 / 1_q_F_per_m * 1_q_m == 1_q_V_per_m); static_assert(detail::unit_text() == "F/m"); // permeability -static_assert(1q_H_per_m * 1q_A / 1q_m == 1q_T); -static_assert(1q_H_per_m * 1q_A * 1q_A == 1q_N); +static_assert(1_q_H_per_m * 1_q_A / 1_q_m == 1_q_T); +static_assert(1_q_H_per_m * 1_q_A * 1_q_A == 1_q_N); static_assert(detail::unit_text() == "H/m"); // molar energy -static_assert(1q_J_per_mol * 1q_mol_per_m3 * 1q_m3 == 1q_N * 1q_m); +static_assert(1_q_J_per_mol * 1_q_mol_per_m3 * 1_q_m3 == 1_q_N * 1_q_m); static_assert(detail::unit_text() == "J/mol"); // angular velocity -static_assert(1q_rad / 1q_s == 1q_rad_per_s); +static_assert(1_q_rad / 1_q_s == 1_q_rad_per_s); static_assert(detail::unit_text() == basic_symbol_text("ω", "w")); } // namespace diff --git a/test/unit_test/static/us_test.cpp b/test/unit_test/static/us_test.cpp index 2256ceb4..ae086406 100644 --- a/test/unit_test/static/us_test.cpp +++ b/test/unit_test/static/us_test.cpp @@ -42,19 +42,19 @@ using namespace units::physical::international; // length -static_assert(1q_yd == 0.9144q_m); -static_assert(1q_yd == 3q_ft); -static_assert(1q_ft == 12q_in); -static_assert(1q_mi == 1760q_yd); +static_assert(1_q_yd == 0.9144_q_m); +static_assert(1_q_yd == 3_q_ft); +static_assert(1_q_ft == 12_q_in); +static_assert(1_q_mi == 1760_q_yd); -static_assert(5q_in + 8q_cm == 207q_mm); +static_assert(5_q_in + 8_q_cm == 207_q_mm); /* ************** DERIVED DIMENSIONS IN TERMS OF BASE UNITS **************** */ // speed -static_assert(10.0q_mi / 2q_h == 5q_mi_per_h); +static_assert(10.0_q_mi / 2_q_h == 5_q_mi_per_h); static_assert(mile_per_hour::symbol == "mi/h"); diff --git a/test_package/test_package.cpp b/test_package/test_package.cpp index 86df020c..eb2cd2b8 100644 --- a/test_package/test_package.cpp +++ b/test_package/test_package.cpp @@ -33,5 +33,5 @@ constexpr Speed auto avg_speed(Length auto d, Time auto t) int main() { using namespace units::physical::si::literals; - std::cout << "Average speed = " << avg_speed(240.q_km, 2q_h) << '\n'; + std::cout << "Average speed = " << avg_speed(240._q_km, 2_q_h) << '\n'; }