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³");