mirror of
https://github.com/mpusz/mp-units.git
synced 2025-07-30 02:17:16 +02:00
refactor: 💥 ReferenceOf
does not take a dimension anymore
It seems unneeded and removing this check greatly simplifies common compilation errors.
This commit is contained in:
@ -82,6 +82,9 @@ static_assert(!Dimension<base_dimension<"L">>);
|
||||
static_assert(!Dimension<struct si::metre>);
|
||||
static_assert(!Dimension<int>);
|
||||
|
||||
// DimensionOf
|
||||
// TODO add tests
|
||||
|
||||
// QuantitySpec
|
||||
struct speed : decltype(isq::length / isq::time) {}; // this is not recommended
|
||||
|
||||
@ -132,6 +135,9 @@ static_assert(!detail::QuantityKindSpec<speed>);
|
||||
static_assert(!detail::QuantityKindSpec<struct isq::dim_length>);
|
||||
static_assert(!detail::QuantityKindSpec<int>);
|
||||
|
||||
// QuantitySpecOf
|
||||
// TODO add tests
|
||||
|
||||
// Unit
|
||||
struct metre_per_second : decltype(si::metre / si::second) {};
|
||||
|
||||
@ -265,24 +271,16 @@ static_assert(ReferenceOf<std::remove_const_t<decltype(isq::length[si::metre])>,
|
||||
static_assert(!ReferenceOf<std::remove_const_t<decltype(isq::length[si::metre])>, isq::radius>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::radius[si::metre])>, isq::length>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::radius[si::metre])>, isq::radius>);
|
||||
static_assert(ReferenceOf<struct si::metre, isq::dim_length>);
|
||||
static_assert(!ReferenceOf<struct si::second, isq::dim_length>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::length[si::metre])>, isq::dim_length>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::radius[si::metre])>, isq::dim_length>);
|
||||
|
||||
static_assert(ReferenceOf<struct one, dimensionless>);
|
||||
static_assert(ReferenceOf<struct one, dimension_one>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(dimensionless[one])>, dimensionless>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(dimensionless[one])>, dimension_one>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::rotation[one])>, isq::rotation>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::rotation[one])>, dimensionless>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::rotation[one])>, dimension_one>);
|
||||
static_assert(ReferenceOf<struct si::radian, isq::angular_measure>);
|
||||
static_assert(!ReferenceOf<struct si::radian, dimensionless>);
|
||||
static_assert(ReferenceOf<struct si::radian, dimension_one>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::angular_measure[si::radian])>, isq::angular_measure>);
|
||||
static_assert(!ReferenceOf<std::remove_const_t<decltype(isq::angular_measure[si::radian])>, dimensionless>);
|
||||
static_assert(ReferenceOf<std::remove_const_t<decltype(isq::angular_measure[si::radian])>, dimension_one>);
|
||||
static_assert(ReferenceOf<struct one, isq::rotation>);
|
||||
static_assert(ReferenceOf<struct one, isq::angular_measure>);
|
||||
static_assert(!ReferenceOf<std::remove_const_t<decltype(dimensionless[one])>, isq::rotation>);
|
||||
@ -323,24 +321,16 @@ static_assert(QuantityOf<quantity<isq::length[si::metre]>, isq::length>);
|
||||
static_assert(!QuantityOf<quantity<isq::length[si::metre]>, isq::radius>);
|
||||
static_assert(QuantityOf<quantity<isq::radius[si::metre]>, isq::length>);
|
||||
static_assert(QuantityOf<quantity<isq::radius[si::metre]>, isq::radius>);
|
||||
static_assert(QuantityOf<quantity<si::metre>, isq::dim_length>);
|
||||
static_assert(!QuantityOf<quantity<si::second>, isq::dim_length>);
|
||||
static_assert(QuantityOf<quantity<isq::length[si::metre]>, isq::dim_length>);
|
||||
static_assert(QuantityOf<quantity<isq::radius[si::metre]>, isq::dim_length>);
|
||||
|
||||
static_assert(QuantityOf<quantity<one>, dimensionless>);
|
||||
static_assert(QuantityOf<quantity<one>, dimension_one>);
|
||||
static_assert(QuantityOf<quantity<dimensionless[one]>, dimensionless>);
|
||||
static_assert(QuantityOf<quantity<dimensionless[one]>, dimension_one>);
|
||||
static_assert(QuantityOf<quantity<isq::rotation[one]>, isq::rotation>);
|
||||
static_assert(QuantityOf<quantity<isq::rotation[one]>, dimensionless>);
|
||||
static_assert(QuantityOf<quantity<isq::rotation[one]>, dimension_one>);
|
||||
static_assert(QuantityOf<quantity<si::radian>, isq::angular_measure>);
|
||||
static_assert(!QuantityOf<quantity<si::radian>, dimensionless>);
|
||||
static_assert(QuantityOf<quantity<si::radian>, dimension_one>);
|
||||
static_assert(QuantityOf<quantity<isq::angular_measure[si::radian]>, isq::angular_measure>);
|
||||
static_assert(!QuantityOf<quantity<isq::angular_measure[si::radian]>, dimensionless>);
|
||||
static_assert(QuantityOf<quantity<isq::angular_measure[si::radian]>, dimension_one>);
|
||||
static_assert(QuantityOf<quantity<one>, isq::rotation>);
|
||||
static_assert(QuantityOf<quantity<one>, isq::angular_measure>);
|
||||
static_assert(!QuantityOf<quantity<dimensionless[one]>, isq::rotation>);
|
||||
|
Reference in New Issue
Block a user