@@ -118,7 +118,7 @@ void real() = delete; // poison pill
118118
119119struct real_t {
120120 // TODO how to constrain the return with RealScalar?
121- [[nodiscard]] constexpr auto operator ()(const WeaklyRegular auto & clx) const
121+ [[nodiscard]] constexpr auto operator ()(const auto & clx) const
122122 requires requires { clx.real (); } || requires { real (clx); }
123123 {
124124 if constexpr (requires { clx.real (); })
@@ -142,7 +142,7 @@ void imag() = delete; // poison pill
142142
143143struct imag_t {
144144 // TODO how to constrain the return with RealScalar?
145- [[nodiscard]] constexpr auto operator ()(const WeaklyRegular auto & clx) const
145+ [[nodiscard]] constexpr auto operator ()(const auto & clx) const
146146 requires requires { clx.imag (); } || requires { imag (clx); }
147147 {
148148 if constexpr (requires { clx.imag (); })
@@ -167,7 +167,7 @@ void abs() = delete; // poison pill
167167
168168struct modulus_t {
169169 // TODO how to constrain the return with RealScalar?
170- [[nodiscard]] constexpr auto operator ()(const WeaklyRegular auto & clx) const
170+ [[nodiscard]] constexpr auto operator ()(const auto & clx) const
171171 requires requires { clx.modulus (); } || requires { modulus (clx); } || requires { clx.abs (); } ||
172172 requires { abs (clx); }
173173 {
@@ -216,7 +216,7 @@ void magnitude() = delete; // poison pill
216216void abs () = delete; // poison pill
217217
218218struct magnitude_t {
219- template <WeaklyRegular T>
219+ template <typename T>
220220 [[nodiscard]] constexpr Scalar auto operator ()(const T& vec) const
221221 requires requires { vec.magnitude (); } || requires { magnitude (vec); } ||
222222 (RealScalar<T> && (std::is_arithmetic_v<T> || requires { vec.abs (); } || requires { abs (vec); }))
0 commit comments