This commit is contained in:
Chip Hogg
2022-04-06 02:01:23 +00:00
parent b616e58216
commit 2c31bf83ec
2 changed files with 3 additions and 8 deletions

View File

@@ -368,9 +368,6 @@ struct magnitude {
// Whether this magnitude represents a rational number.
friend constexpr bool is_rational(const magnitude&) { return (detail::is_rational(BPs) && ...); }
// Implicit conversion to ratio.
constexpr explicit(false) operator ratio() const;
};
// Implementation for Magnitude concept (below).
@@ -395,7 +392,7 @@ template<typename T, BasePower auto... BPs>
constexpr T get_value(const magnitude<BPs...>&)
{
// Force the expression to be evaluated in a constexpr context, to catch, e.g., overflow.
constexpr auto result = detail::checked_static_cast<T>((detail::compute_base_power<T>(BPs) * ... * 1));
constexpr auto result = detail::checked_static_cast<T>((detail::compute_base_power<T>(BPs) * ... * T{1}));
return result;
}

View File

@@ -383,12 +383,10 @@ TEST_CASE("Constructing ratio from rational magnitude")
SECTION("Irrational magnitude does not convert to ratio")
{
// The following code should not compile.
// constexpr ratio radical = pow<ratio{1, 2}>(as_magnitude<2>());
// (void)radical;
// as_ratio(pow<ratio{1, 2}>(as_magnitude<2>()));
// The following code should not compile.
// constexpr ratio degrees_per_radian = as_magnitude<180>() / pi_to_the<1>();
// (void)degrees_per_radian;
// as_ratio(as_magnitude<180>() / pi_to_the<1>());
}
}