Revert "fix: appleclang-15 timeout on compilation workaround"

This reverts commit 7d340d9098.

This fix was causing the following error:

```
fatal error: error in backend: SmallVector unable to grow.
```
This commit is contained in:
Roth Michaels
2025-04-21 16:31:23 -04:00
parent cd5ee3b773
commit 2e7f25a782

View File

@@ -44,12 +44,7 @@ namespace mp_units {
namespace detail { namespace detail {
template<typename T> template<typename T>
concept WeaklyRegular = concept WeaklyRegular = std::copyable<T> && std::equality_comparable<T>;
#ifndef MP_UNITS_XCODE15_HACKS
true;
#else
std::copyable<T> && std::equality_comparable<T>;
#endif
template<typename T, typename S> template<typename T, typename S>
concept ScalableWith = requires(const T v, const S s) { concept ScalableWith = requires(const T v, const S s) {
@@ -175,13 +170,18 @@ template<typename T>
concept ComplexScalar = concept ComplexScalar =
// TODO should the below be provided? // TODO should the below be provided?
// (!disable_complex<T>) && // (!disable_complex<T>) &&
Addable<T> && ScalableWith<T, T> && requires(const T v, const T& ref) { Addable<T> && ScalableWith<T, T> &&
requires(const T v, const T& ref) {
::mp_units::real(v); ::mp_units::real(v);
::mp_units::imag(v); ::mp_units::imag(v);
::mp_units::modulus(v); ::mp_units::modulus(v);
requires ScalableWith<T, decltype(::mp_units::modulus(v))>; requires ScalableWith<T, decltype(::mp_units::modulus(v))>;
requires std::constructible_from<T, decltype(::mp_units::real(ref)), decltype(::mp_units::imag(ref))>; requires std::constructible_from<T, decltype(::mp_units::real(ref)), decltype(::mp_units::imag(ref))>;
} && WeaklyRegular<T>; }
#ifndef MP_UNITS_XCODE15_HACKS
&& WeaklyRegular<T>
#endif
;
} // namespace detail } // namespace detail
@@ -197,8 +197,12 @@ MP_UNITS_INLINE constexpr bool disable_real<bool> = true;
namespace detail { namespace detail {
template<typename T> template<typename T>
concept RealScalar = (!disable_real<T>) && Addable<T> && ScalableWith<T, T> && std::totally_ordered<T> && concept RealScalar =
(!ComplexScalar<T>) && WeaklyRegular<T>; (!disable_real<T>) && Addable<T> && ScalableWith<T, T> && std::totally_ordered<T> && (!ComplexScalar<T>)
#if MP_UNITS_COMP_GCC != 12 && !defined(MP_UNITS_XCODE15_HACKS)
&& WeaklyRegular<T>
#endif
;
template<typename T> template<typename T>
concept Scalar = RealScalar<T> || ComplexScalar<T>; concept Scalar = RealScalar<T> || ComplexScalar<T>;
@@ -250,15 +254,20 @@ MP_UNITS_EXPORT inline constexpr ::mp_units::detail::magnitude_impl::magnitude_t
namespace detail { namespace detail {
template<typename T> template<typename T>
concept Vector = Addable<T> && requires(const T v) { concept Vector = Addable<T> &&
::mp_units::magnitude(v); requires(const T v) {
requires ScalableWith<T, decltype(::mp_units::magnitude(v))>; ::mp_units::magnitude(v);
// TODO should we also check for the below (e.g., when `size() > 1` or `2`) requires ScalableWith<T, decltype(::mp_units::magnitude(v))>;
// ::mp_units::zero_vector<T>(); // TODO should we also check for the below (e.g., when `size() > 1` or `2`)
// ::mp_units::scalar_product(a, b); // ::mp_units::zero_vector<T>();
// ::mp_units::vector_product(a, b); // ::mp_units::scalar_product(a, b);
// ::mp_units::tensor_product(a, b); // ::mp_units::vector_product(a, b);
} && WeaklyRegular<T>; // ::mp_units::tensor_product(a, b);
}
#ifndef MP_UNITS_XCODE15_HACKS
&& WeaklyRegular<T>
#endif
;
} // namespace detail } // namespace detail