feat!: 💥 dimensionless quantities refactored

Dimensionless quantities are now represented by quantity types rather
than by plain representation types. Only dimensionless quantities with
`unitless` unit are implicitly convertible from representation types.

`units::exp()` now is a function doing std::exp() on a representation
type (previous `units::exp` class template was renamed to
`units::exponent`).

BREAKING_CHANGE: gcc-9.3 support removed
BREAKING_CHANGE: `exp` and `Exp` renamed to `exponent` and `Exponent`
Resolves #27
Resolves #42
This commit is contained in:
Mateusz Pusz
2020-09-08 11:02:16 +02:00
parent c8b60b80c1
commit 563b358d5e
47 changed files with 599 additions and 422 deletions
+4
View File
@@ -63,10 +63,12 @@ TEST_CASE("absolute functions on quantity returns the absolute value", "[math][a
REQUIRE(abs(-1q_m) == 1q_m);
}
#ifndef COMP_MSVC
SECTION ("floating-point representation")
{
REQUIRE(abs(-1.q_m) == 1q_m);
}
#endif
}
SECTION ("'abs()' on a positive quantity returns the abs")
@@ -76,10 +78,12 @@ TEST_CASE("absolute functions on quantity returns the absolute value", "[math][a
REQUIRE(abs(1q_m) == 1q_m);
}
#ifndef COMP_MSVC
SECTION ("floating-point representation")
{
REQUIRE(abs(1.q_m) == 1q_m);
}
#endif
}
}