mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-03 20:34:26 +02:00
feat: 💥 unit_can_be_prefixed
removed - from now on all named units can be prefixed
Resolves #604
This commit is contained in:
@@ -155,31 +155,6 @@ static_assert(!Unit<int>);
|
||||
static_assert(!Unit<std::chrono::seconds>);
|
||||
#endif
|
||||
|
||||
// NamedUnit
|
||||
static_assert(detail::NamedUnit<struct si::metre>);
|
||||
static_assert(detail::NamedUnit<struct natural::electronvolt>);
|
||||
static_assert(!detail::NamedUnit<decltype(si::kilogram)>);
|
||||
static_assert(!detail::NamedUnit<decltype(si::kilo<si::gram>)>);
|
||||
static_assert(!detail::NamedUnit<decltype(si::metre / si::second)>);
|
||||
static_assert(!detail::NamedUnit<decltype(inverse(si::second))>);
|
||||
static_assert(!detail::NamedUnit<decltype(mag<10> * si::second)>);
|
||||
static_assert(!detail::NamedUnit<decltype(square(si::metre))>);
|
||||
static_assert(!detail::NamedUnit<decltype(pow<2>(si::metre))>);
|
||||
static_assert(detail::NamedUnit<struct si::standard_gravity>);
|
||||
static_assert(!detail::NamedUnit<scaled_unit<mag<10>, struct si::second>>);
|
||||
static_assert(!detail::NamedUnit<derived_unit<struct si::metre, per<struct si::second>>>);
|
||||
static_assert(!detail::NamedUnit<struct one>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?", kind_of<isq::length>>>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?">>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?", si::metre / si::second>>);
|
||||
static_assert(!detail::NamedUnit<named_unit<"?", si::metre, kind_of<isq::length>>>);
|
||||
static_assert(!detail::NamedUnit<prefixed_unit<"?", mag<10>, si::second>>);
|
||||
static_assert(!detail::NamedUnit<struct isq::dim_length>);
|
||||
static_assert(!detail::NamedUnit<int>);
|
||||
#if MP_UNITS_HOSTED
|
||||
static_assert(!detail::NamedUnit<std::chrono::seconds>);
|
||||
#endif
|
||||
|
||||
// PrefixableUnit
|
||||
static_assert(PrefixableUnit<struct si::metre>);
|
||||
static_assert(PrefixableUnit<struct natural::electronvolt>);
|
||||
|
@@ -63,10 +63,6 @@ static_assert(1 * Qm == 1'000'000'000'000'000'000 * Tm);
|
||||
template<template<typename U> typename prefix, auto V1>
|
||||
concept can_not_be_prefixed = Unit<decltype(V1)> && !requires { typename prefix<decltype(V1)>; };
|
||||
|
||||
static_assert(can_not_be_prefixed<si::milli_, si::degree_Celsius>);
|
||||
static_assert(can_not_be_prefixed<si::milli_, si::minute>);
|
||||
static_assert(can_not_be_prefixed<si::milli_, si::hour>);
|
||||
static_assert(can_not_be_prefixed<si::milli_, si::day>);
|
||||
static_assert(can_not_be_prefixed<si::milli_, si::kilogram>);
|
||||
static_assert(can_not_be_prefixed<si::milli_, si::hectare>);
|
||||
static_assert(can_not_be_prefixed<si::milli_, si::kilo<si::metre>>);
|
||||
|
@@ -106,18 +106,18 @@ static_assert(Unit<decltype(metre / second)>);
|
||||
static_assert(Unit<decltype(nu_second / nu_second)>);
|
||||
static_assert(Unit<decltype(kilometre)>);
|
||||
|
||||
static_assert(detail::NamedUnit<metre_>);
|
||||
static_assert(detail::NamedUnit<hertz_>);
|
||||
static_assert(detail::NamedUnit<newton_>);
|
||||
static_assert(detail::NamedUnit<minute_>);
|
||||
static_assert(detail::NamedUnit<radian_>);
|
||||
static_assert(!detail::NamedUnit<decltype(kilogram)>);
|
||||
static_assert(!detail::NamedUnit<decltype(kilojoule)>);
|
||||
static_assert(!detail::NamedUnit<decltype(si::kilo<gram>)>);
|
||||
static_assert(!detail::NamedUnit<decltype(square(metre))>);
|
||||
static_assert(!detail::NamedUnit<decltype(cubic(metre))>);
|
||||
static_assert(!detail::NamedUnit<decltype(mag<60> * second)>);
|
||||
static_assert(!detail::NamedUnit<decltype(kilometre)>);
|
||||
static_assert(PrefixableUnit<metre_>);
|
||||
static_assert(PrefixableUnit<hertz_>);
|
||||
static_assert(PrefixableUnit<newton_>);
|
||||
static_assert(PrefixableUnit<minute_>);
|
||||
static_assert(PrefixableUnit<radian_>);
|
||||
static_assert(!PrefixableUnit<decltype(kilogram)>);
|
||||
static_assert(!PrefixableUnit<decltype(kilojoule)>);
|
||||
static_assert(!PrefixableUnit<decltype(si::kilo<gram>)>);
|
||||
static_assert(!PrefixableUnit<decltype(square(metre))>);
|
||||
static_assert(!PrefixableUnit<decltype(cubic(metre))>);
|
||||
static_assert(!PrefixableUnit<decltype(mag<60> * second)>);
|
||||
static_assert(!PrefixableUnit<decltype(kilometre)>);
|
||||
|
||||
// named unit
|
||||
static_assert(is_of_type<metre, metre_>);
|
||||
|
Reference in New Issue
Block a user