@@ -52,10 +52,7 @@ namespace matchit
5252 class EvalTraits <Nullary<T>>
5353 {
5454 public:
55- constexpr static decltype (auto ) evalImpl(Nullary<T> const &e)
56- {
57- return e ();
58- }
55+ constexpr static decltype (auto ) evalImpl(Nullary<T> const &e) { return e (); }
5956 };
6057
6158 // Only allowed in nullary
@@ -65,7 +62,7 @@ namespace matchit
6562 public:
6663 constexpr static decltype (auto ) evalImpl(Id<T> const &id)
6764 {
68- return *const_cast <Id<T>&>(id);
65+ return *const_cast <Id<T> &>(id);
6966 }
7067 };
7168
@@ -130,11 +127,13 @@ namespace matchit
130127 return nullary ([&] { return op eval (t); }); \
131128 }
132129
133- #define BIN_OP_FOR_NULLARY (op ) \
134- template <typename T, typename U, std::enable_if_t <isNullaryOrIdV<T> || isNullaryOrIdV<U>, bool > = true > \
135- constexpr auto operator op (T const &t, U const &u) \
136- { \
137- return nullary ([&] { return eval (t) op eval (u); }); \
130+ #define BIN_OP_FOR_NULLARY (op ) \
131+ template <typename T, typename U, \
132+ std::enable_if_t <isNullaryOrIdV<T> || isNullaryOrIdV<U>, bool > = \
133+ true > \
134+ constexpr auto operator op (T const &t, U const &u) \
135+ { \
136+ return nullary ([&] { return eval (t) op eval (u); }); \
138137 }
139138
140139 // ADL will find these operators.
@@ -192,11 +191,15 @@ namespace matchit
192191 return unary ([&](auto &&arg) constexpr { return op eval (t, arg); }); \
193192 }
194193
195- #define BIN_OP_FOR_UNARY (op ) \
196- template <typename T, typename U, std::enable_if_t <isUnaryOrWildcardV<T> || isUnaryOrWildcardV<U>, bool > = true > \
197- constexpr auto operator op (T const &t, U const &u) \
198- { \
199- return unary ([&](auto &&arg) constexpr { return eval (t, arg) op eval (u, arg); }); \
194+ #define BIN_OP_FOR_UNARY (op ) \
195+ template <typename T, typename U, \
196+ std::enable_if_t <isUnaryOrWildcardV<T> || isUnaryOrWildcardV<U>, \
197+ bool > = true > \
198+ constexpr auto operator op (T const &t, U const &u) \
199+ { \
200+ return unary ([&](auto &&arg) constexpr { \
201+ return eval (t, arg) op eval (u, arg); \
202+ }); \
200203 }
201204
202205 UN_OP_FOR_UNARY (!)
0 commit comments