Fix remaining constraints

This commit is contained in:
Chip Hogg
2022-01-08 18:19:40 -05:00
parent 325cbc8fa9
commit ba458d479e

View File

@@ -170,7 +170,7 @@ constexpr std::intmax_t remove_power(std::intmax_t base, std::intmax_t pow, std:
// Helpers to perform prime factorization at compile time. // Helpers to perform prime factorization at compile time.
template<std::intmax_t N> template<std::intmax_t N>
requires requires { N > 0; } requires (N > 0)
struct prime_factorization; struct prime_factorization;
template<std::intmax_t N> template<std::intmax_t N>
@@ -248,7 +248,7 @@ concept Magnitude = detail::is_magnitude<T>::value;
* manually adding base powers. * manually adding base powers.
*/ */
template<ratio R> template<ratio R>
requires requires { R.num > 0; } requires (R.num > 0)
constexpr Magnitude auto as_magnitude(); constexpr Magnitude auto as_magnitude();
/** /**
@@ -328,7 +328,7 @@ constexpr auto operator/(Magnitude auto l, Magnitude auto r) { return l * invers
// `as_magnitude()` implementation. // `as_magnitude()` implementation.
template<ratio R> template<ratio R>
requires requires { R.num > 0; } requires (R.num > 0)
constexpr Magnitude auto as_magnitude() { constexpr Magnitude auto as_magnitude() {
return detail::prime_factorization_v<R.num> / detail::prime_factorization_v<R.den>; return detail::prime_factorization_v<R.num> / detail::prime_factorization_v<R.den>;
} }
@@ -337,7 +337,7 @@ namespace detail
{ {
// Default implementation. // Default implementation.
template<std::intmax_t N> template<std::intmax_t N>
requires requires { N > 0; } requires (N > 0)
struct prime_factorization { struct prime_factorization {
static constexpr int first_base = find_first_factor(N); static constexpr int first_base = find_first_factor(N);
static constexpr std::intmax_t first_power = multiplicity(first_base, N); static constexpr std::intmax_t first_power = multiplicity(first_base, N);