From a62f061028d08a026a673ee8a42d1e80f5bda1ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Neboj=C5=A1a=20Cvetkovi=C4=87?= Date: Sat, 20 Jan 2024 00:05:54 +0000 Subject: [PATCH] feat: `ppm` parts per million Co-authored-by: Mateusz Pusz --- docs/users_guide/framework_basics/dimensionless_quantities.md | 2 ++ src/core/include/mp-units/unit.h | 2 ++ test/static/unit_symbol_test.cpp | 1 + 3 files changed, 5 insertions(+) diff --git a/docs/users_guide/framework_basics/dimensionless_quantities.md b/docs/users_guide/framework_basics/dimensionless_quantities.md index 58949800..7215eb4e 100644 --- a/docs/users_guide/framework_basics/dimensionless_quantities.md +++ b/docs/users_guide/framework_basics/dimensionless_quantities.md @@ -160,6 +160,8 @@ with dimensionless quantities: ```cpp inline constexpr struct percent : named_unit<"%", mag * one> {} percent; inline constexpr struct per_mille : named_unit * one> {} per_mille; +inline constexpr struct parts_per_million : named_unit<"ppm", mag * one> {} parts_per_million; +inline constexpr auto ppm = parts_per_million; ``` diff --git a/src/core/include/mp-units/unit.h b/src/core/include/mp-units/unit.h index cbcdde91..7c210cd2 100644 --- a/src/core/include/mp-units/unit.h +++ b/src/core/include/mp-units/unit.h @@ -605,6 +605,8 @@ template // clang-format off inline constexpr struct percent : named_unit<"%", mag * one> {} percent; inline constexpr struct per_mille : named_unit * one> {} per_mille; +inline constexpr struct parts_per_million : named_unit<"ppm", mag * one> {} parts_per_million; +inline constexpr auto ppm = parts_per_million; // clang-format on diff --git a/test/static/unit_symbol_test.cpp b/test/static/unit_symbol_test.cpp index 24fe56fa..d52a2f8f 100644 --- a/test/static/unit_symbol_test.cpp +++ b/test/static/unit_symbol_test.cpp @@ -120,6 +120,7 @@ static_assert(unit_symbol(one) == ""); static_assert(unit_symbol(percent) == "%"); static_assert(unit_symbol(per_mille) == "‰"); static_assert(unit_symbol(per_mille) == "%o"); +static_assert(unit_symbol(parts_per_million) == "ppm"); static_assert(unit_symbol(square(metre)) == "m²"); static_assert(unit_symbol(square(metre)) == "m^2"); static_assert(unit_symbol(cubic(metre)) == "m³");