From 1365d622936bb8aeddaa5abcca2d99219a921733 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Tue, 2 Jul 2024 11:43:53 +0100 Subject: [PATCH] refactor: degree Celsius and Fahrenheit symbols text now use Unicode codepoints --- docs/blog/posts/2.2.0-released.md | 4 ++-- docs/getting_started/quick_start.md | 2 +- .../users_guide/framework_basics/the_affine_space.md | 12 ++++++------ src/core/include/mp-units/framework/unit.h | 2 +- test/static/unit_symbol_test.cpp | 2 +- test/static/unit_test.cpp | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/blog/posts/2.2.0-released.md b/docs/blog/posts/2.2.0-released.md index 05a5b581..bd30c471 100644 --- a/docs/blog/posts/2.2.0-released.md +++ b/docs/blog/posts/2.2.0-released.md @@ -316,7 +316,7 @@ marked `final` (:boom: **breaking change** :boom:). inline constexpr struct ice_point final : relative_point_origin}> {} ice_point; inline constexpr auto zeroth_degree_Celsius = ice_point; - inline constexpr struct degree_Celsius final : named_unit {} degree_Celsius; + inline constexpr struct degree_Celsius final : named_unit {} degree_Celsius; ``` === "Before" @@ -331,7 +331,7 @@ marked `final` (:boom: **breaking change** :boom:). inline constexpr struct ice_point : relative_point_origin}> {} ice_point; inline constexpr struct zeroth_degree_Celsius : decltype(ice_point) {} zeroth_degree_Celsius; - inline constexpr struct degree_Celsius : named_unit {} degree_Celsius; + inline constexpr struct degree_Celsius : named_unit {} degree_Celsius; ``` Please also note, that the `absolute_point_origin` does not use CRTP idiom anymore (:boom: **breaking change** :boom:). diff --git a/docs/getting_started/quick_start.md b/docs/getting_started/quick_start.md index 941a51d0..c0a5368e 100644 --- a/docs/getting_started/quick_start.md +++ b/docs/getting_started/quick_start.md @@ -292,7 +292,7 @@ This introduces an additional type-safety. The above outputs: ```text -Temperature: 20 °C (68 °F) +Temperature: 20 ℃ (68 ℉) ``` !!! info diff --git a/docs/users_guide/framework_basics/the_affine_space.md b/docs/users_guide/framework_basics/the_affine_space.md index 671585f6..91d16dd6 100644 --- a/docs/users_guide/framework_basics/the_affine_space.md +++ b/docs/users_guide/framework_basics/the_affine_space.md @@ -445,14 +445,14 @@ namespace si { inline constexpr struct kelvin final : named_unit<"K", kind_of, zeroth_kelvin> {} kelvin; inline constexpr struct degree_Celsius final : - named_unit<{u8"°C", "`C"}, kelvin, zeroth_degree_Celsius> {} degree_Celsius; + named_unit<{u8"℃", "`C"}, kelvin, zeroth_degree_Celsius> {} degree_Celsius; } namespace usc { inline constexpr struct degree_Fahrenheit final : - named_unit<{u8"°F", "`F"}, mag_ratio<5, 9> * si::degree_Celsius, + named_unit<{u8"℉", "`F"}, mag_ratio<5, 9> * si::degree_Celsius, zeroth_degree_Fahrenheit> {} degree_Fahrenheit; } @@ -532,13 +532,13 @@ print_temp("Highest", room_high); The above prints: ```text -Room reference temperature: 21 °C (69.8 °F, 294.15 K) +Room reference temperature: 21 ℃ (69.8 ℉, 294.15 K) | Temperature delta | Room reference | Ice point | Absolute zero | |====================|====================|====================|====================| -| Lowest | -3 °C | 18 °C | 291.15 °C | -| Default | 0 °C | 21 °C | 294.15 °C | -| Highest | 3 °C | 24 °C | 297.15 °C | +| Lowest | -3 ℃ | 18 ℃ | 291.15 ℃ | +| Default | 0 ℃ | 21 ℃ | 294.15 ℃ | +| Highest | 3 ℃ | 24 ℃ | 297.15 ℃ | ``` diff --git a/src/core/include/mp-units/framework/unit.h b/src/core/include/mp-units/framework/unit.h index 2e661b34..f608e63a 100644 --- a/src/core/include/mp-units/framework/unit.h +++ b/src/core/include/mp-units/framework/unit.h @@ -109,7 +109,7 @@ inline constexpr bool is_specialization_of_scaled_unit> = true * inline constexpr struct metre final : named_unit<"m", kind_of {} metre; * inline constexpr struct hertz final : named_unit<"Hz", inverse(second), kind_of> {} hertz; * inline constexpr struct newton final : named_unit<"N", kilogram * metre / square(second)> {} newton; - * inline constexpr struct degree_Celsius final : named_unit<{u8"°C", "`C"}, kelvin, zeroth_degree_Celsius> {} + * inline constexpr struct degree_Celsius final : named_unit<{u8"℃", "`C"}, kelvin, zeroth_degree_Celsius> {} * degree_Celsius; inline constexpr struct minute final : named_unit<"min", mag<60> * second> {} minute; * @endcode * diff --git a/test/static/unit_symbol_test.cpp b/test/static/unit_symbol_test.cpp index dd76dbab..c61ae300 100644 --- a/test/static/unit_symbol_test.cpp +++ b/test/static/unit_symbol_test.cpp @@ -39,7 +39,7 @@ using enum unit_symbol_separator; static_assert(unit_symbol(metre) == "m"); static_assert(unit_symbol(second) == "s"); static_assert(unit_symbol(joule) == "J"); -static_assert(unit_symbol(degree_Celsius) == "\u00B0C"); +static_assert(unit_symbol(degree_Celsius) == "\u2103"); static_assert(unit_symbol(degree_Celsius) == "`C"); static_assert(unit_symbol(kilogram) == "kg"); static_assert(unit_symbol(hour) == "h"); diff --git a/test/static/unit_test.cpp b/test/static/unit_test.cpp index 60e45e48..f0b330a6 100644 --- a/test/static/unit_test.cpp +++ b/test/static/unit_test.cpp @@ -66,7 +66,7 @@ inline constexpr struct newton_ final : named_unit<"N", kilogram * metre / squar inline constexpr struct pascal_ final : named_unit<"Pa", newton / square(metre)> {} pascal; inline constexpr struct joule_ final : named_unit<"J", newton * metre> {} joule; inline constexpr struct watt_ final : named_unit<"W", joule / second> {} watt; -inline constexpr struct degree_Celsius_ final : named_unit {} degree_Celsius; +inline constexpr struct degree_Celsius_ final : named_unit {} degree_Celsius; inline constexpr struct minute_ final : named_unit<"min", mag<60> * second> {} minute; inline constexpr struct hour_ final : named_unit<"h", mag<60> * minute> {} hour;