diff --git a/src/systems/angular/include/mp_units/systems/angular/angular.h b/src/systems/angular/include/mp_units/systems/angular/angular.h index f3126b5d..51321956 100644 --- a/src/systems/angular/include/mp_units/systems/angular/angular.h +++ b/src/systems/angular/include/mp_units/systems/angular/angular.h @@ -33,7 +33,7 @@ inline constexpr struct dim_angle : base_dimension<"A"> {} dim_angle; QUANTITY_SPEC(angle, dim_angle); QUANTITY_SPEC(solid_angle, pow<2>(angle)); -inline constexpr struct radian : named_unit<"rad", angle> {} radian; +inline constexpr struct radian : named_unit<"rad", kind_of> {} radian; inline constexpr struct revolution : named_unit<"rev", mag<2> * mag_pi * radian> {} revolution; inline constexpr struct degree : named_unit * revolution> {} degree; inline constexpr struct gradian : named_unit * revolution> {} gradian; diff --git a/src/systems/iec80000/include/mp_units/systems/iec80000/units.h b/src/systems/iec80000/include/mp_units/systems/iec80000/units.h index f65bee09..8d63340d 100644 --- a/src/systems/iec80000/include/mp_units/systems/iec80000/units.h +++ b/src/systems/iec80000/include/mp_units/systems/iec80000/units.h @@ -29,11 +29,11 @@ namespace mp_units::iec80000 { // clang-format off -inline constexpr struct erlang : named_unit<"E", traffic_intensity> {} erlang; +inline constexpr struct erlang : named_unit<"E", kind_of> {} erlang; inline constexpr struct bit : named_unit<"bit", one> {} bit; inline constexpr struct octet : named_unit<"o", mag<8> * bit> {} octet; inline constexpr struct byte : named_unit<"B", mag<8> * bit> {} byte; -inline constexpr struct baud : named_unit<"Bd", 1 / si::second> {} baud; +inline constexpr struct baud : named_unit<"Bd", 1 / si::second, kind_of> {} baud; // clang-format on } // namespace mp_units::iec80000 diff --git a/src/systems/si/include/mp_units/systems/si/units.h b/src/systems/si/include/mp_units/systems/si/units.h index 705c1e9d..99909497 100644 --- a/src/systems/si/include/mp_units/systems/si/units.h +++ b/src/systems/si/include/mp_units/systems/si/units.h @@ -22,7 +22,7 @@ #pragma once -#include +#include #include #include @@ -30,21 +30,20 @@ namespace mp_units::si { // clang-format off // base units -inline constexpr struct second : named_unit<"s", isq::time> {} second; -inline constexpr struct metre : named_unit<"m", isq::length> {} metre; -inline constexpr struct gram : named_unit<"g", isq::mass> {} gram; +inline constexpr struct second : named_unit<"s", kind_of> {} second; +inline constexpr struct metre : named_unit<"m", kind_of> {} metre; +inline constexpr struct gram : named_unit<"g", kind_of> {} gram; inline constexpr struct kilogram : decltype(kilo) {} kilogram; -inline constexpr struct ampere : named_unit<"A", isq::electric_current> {} ampere; -inline constexpr struct kelvin : named_unit<"K", isq::thermodynamic_temperature> {} kelvin; -// inline constexpr struct kelvin : named_unit<"K", isq::thermodynamic_temperature, not_for> {} kelvin; -inline constexpr struct mole : named_unit<"mol", isq::amount_of_substance> {} mole; -inline constexpr struct candela : named_unit<"cd", isq::luminous_intensity> {} candela; +inline constexpr struct ampere : named_unit<"A", kind_of> {} ampere; +inline constexpr struct kelvin : named_unit<"K", kind_of> {} kelvin; +// inline constexpr struct kelvin : named_unit<"K", isq::thermodynamic_temperature, not_for {} kelvin; +inline constexpr struct mole : named_unit<"mol", kind_of> {} mole; +inline constexpr struct candela : named_unit<"cd", kind_of> {} candela; // derived named units -inline constexpr struct radian : named_unit<"rad", metre / metre> {} radian; -inline constexpr struct steradian : named_unit<"sr", square / square> {} steradian; -inline constexpr struct hertz : named_unit<"Hz", 1 / second> {} hertz; -// inline constexpr struct hertz : named_unit<"Hz", 1 / second, only_for> {} hertz; +inline constexpr struct radian : named_unit<"rad", metre / metre, kind_of> {} radian; +inline constexpr struct steradian : named_unit<"sr", square / square, kind_of> {} steradian; +inline constexpr struct hertz : named_unit<"Hz", 1 / second, kind_of> {} hertz; inline constexpr struct newton : named_unit<"N", kilogram * metre / square> {} newton; inline constexpr struct pascal : named_unit<"Pa", newton / square> {} pascal; inline constexpr struct joule : named_unit<"J", newton * metre> {} joule; @@ -57,10 +56,11 @@ inline constexpr struct siemens : named_unit<"S", 1 / ohm> {} siemens; inline constexpr struct weber : named_unit<"Wb", volt * second> {} weber; inline constexpr struct tesla : named_unit<"T", weber / square> {} tesla; inline constexpr struct henry : named_unit<"H", weber / ampere> {} henry; -// inline constexpr struct degree_Celsius : named_unit * milli>, only_for> {} degree_Celsius; +// inline constexpr struct degree_Celsius : named_unit * milli, only_for {} degree_Celsius; inline constexpr struct degree_Celsius : named_unit {} degree_Celsius; inline constexpr struct lumen : named_unit<"lm", candela * steradian> {} lumen; inline constexpr struct lux : named_unit<"lx", lumen / square> {} lux; +// inline constexpr struct becquerel : named_unit<"Bq", 1 / second, kind_of> {} becquerel; inline constexpr struct becquerel : named_unit<"Bq", 1 / second> {} becquerel; inline constexpr struct gray : named_unit<"Gy", joule / kilogram> {} gray; inline constexpr struct sievert : named_unit<"Sv", joule / kilogram> {} sievert;