@@ -58,19 +58,19 @@ namespace Matchers {
58
58
}
59
59
60
60
template <typename T>
61
- using is_generic_matcher = std::is_base_of<
61
+ constexpr static bool is_generic_matcher_v = std::is_base_of<
62
62
Catch::Matchers::MatcherGenericBase,
63
63
std::remove_cv_t <std::remove_reference_t <T>>
64
- >;
64
+ >::value ;
65
65
66
66
template <typename ... Ts>
67
- using are_generic_matchers = Catch::Detail::conjunction<is_generic_matcher< Ts>...>;
67
+ constexpr static bool are_generic_matchers_v = Catch::Detail::conjunction<std::integral_constant< bool ,is_generic_matcher_v< Ts>> ...>::value ;
68
68
69
69
template <typename T>
70
- using is_matcher = std::is_base_of<
70
+ constexpr static bool is_matcher_v = std::is_base_of<
71
71
Catch::Matchers::MatcherUntypedBase,
72
72
std::remove_cv_t <std::remove_reference_t <T>>
73
- >;
73
+ >::value ;
74
74
75
75
76
76
template <std::size_t N, typename Arg>
@@ -143,7 +143,7 @@ namespace Matchers {
143
143
144
144
// ! Avoids type nesting for `GenericAllOf && some matcher` case
145
145
template <typename MatcherRHS>
146
- friend std::enable_if_t <is_matcher <MatcherRHS>::value ,
146
+ friend std::enable_if_t <is_matcher_v <MatcherRHS>,
147
147
MatchAllOfGeneric<MatcherTs..., MatcherRHS>> operator && (
148
148
MatchAllOfGeneric<MatcherTs...>&& lhs,
149
149
MatcherRHS const & rhs) {
@@ -152,7 +152,7 @@ namespace Matchers {
152
152
153
153
// ! Avoids type nesting for `some matcher && GenericAllOf` case
154
154
template <typename MatcherLHS>
155
- friend std::enable_if_t <is_matcher <MatcherLHS>::value ,
155
+ friend std::enable_if_t <is_matcher_v <MatcherLHS>,
156
156
MatchAllOfGeneric<MatcherLHS, MatcherTs...>> operator && (
157
157
MatcherLHS const & lhs,
158
158
MatchAllOfGeneric<MatcherTs...>&& rhs) {
@@ -197,7 +197,7 @@ namespace Matchers {
197
197
198
198
// ! Avoids type nesting for `GenericAnyOf || some matcher` case
199
199
template <typename MatcherRHS>
200
- friend std::enable_if_t <is_matcher <MatcherRHS>::value ,
200
+ friend std::enable_if_t <is_matcher_v <MatcherRHS>,
201
201
MatchAnyOfGeneric<MatcherTs..., MatcherRHS>> operator || (
202
202
MatchAnyOfGeneric<MatcherTs...>&& lhs,
203
203
MatcherRHS const & rhs) {
@@ -206,7 +206,7 @@ namespace Matchers {
206
206
207
207
// ! Avoids type nesting for `some matcher || GenericAnyOf` case
208
208
template <typename MatcherLHS>
209
- friend std::enable_if_t <is_matcher <MatcherLHS>::value ,
209
+ friend std::enable_if_t <is_matcher_v <MatcherLHS>,
210
210
MatchAnyOfGeneric<MatcherLHS, MatcherTs...>> operator || (
211
211
MatcherLHS const & lhs,
212
212
MatchAnyOfGeneric<MatcherTs...>&& rhs) {
@@ -246,46 +246,50 @@ namespace Matchers {
246
246
247
247
// compose only generic matchers
248
248
template <typename MatcherLHS, typename MatcherRHS>
249
- std::enable_if_t <Detail::are_generic_matchers <MatcherLHS, MatcherRHS>::value , Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>>
249
+ std::enable_if_t <Detail::are_generic_matchers_v <MatcherLHS, MatcherRHS>, Detail::MatchAllOfGeneric<MatcherLHS, MatcherRHS>>
250
250
operator && (MatcherLHS const & lhs, MatcherRHS const & rhs) {
251
251
return { lhs, rhs };
252
252
}
253
253
254
254
template <typename MatcherLHS, typename MatcherRHS>
255
- std::enable_if_t <Detail::are_generic_matchers <MatcherLHS, MatcherRHS>::value , Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>>
255
+ std::enable_if_t <Detail::are_generic_matchers_v <MatcherLHS, MatcherRHS>, Detail::MatchAnyOfGeneric<MatcherLHS, MatcherRHS>>
256
256
operator || (MatcherLHS const & lhs, MatcherRHS const & rhs) {
257
257
return { lhs, rhs };
258
258
}
259
259
260
260
// ! Wrap provided generic matcher in generic negator
261
261
template <typename MatcherT>
262
- std::enable_if_t <Detail::is_generic_matcher <MatcherT>::value , Detail::MatchNotOfGeneric<MatcherT>>
262
+ std::enable_if_t <Detail::is_generic_matcher_v <MatcherT>, Detail::MatchNotOfGeneric<MatcherT>>
263
263
operator ! (MatcherT const & matcher) {
264
264
return Detail::MatchNotOfGeneric<MatcherT>{matcher};
265
265
}
266
266
267
267
268
268
// compose mixed generic and non-generic matchers
269
269
template <typename MatcherLHS, typename ArgRHS>
270
- std::enable_if_t <Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAllOfGeneric<MatcherLHS, MatcherBase<ArgRHS>>>
270
+ std::enable_if_t <Detail::is_generic_matcher_v<MatcherLHS>,
271
+ Detail::MatchAllOfGeneric<MatcherLHS, MatcherBase<ArgRHS>>>
271
272
operator && (MatcherLHS const & lhs, MatcherBase<ArgRHS> const & rhs) {
272
273
return { lhs, rhs };
273
274
}
274
275
275
276
template <typename ArgLHS, typename MatcherRHS>
276
- std::enable_if_t <Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>, MatcherRHS>>
277
+ std::enable_if_t <Detail::is_generic_matcher_v<MatcherRHS>,
278
+ Detail::MatchAllOfGeneric<MatcherBase<ArgLHS>, MatcherRHS>>
277
279
operator && (MatcherBase<ArgLHS> const & lhs, MatcherRHS const & rhs) {
278
280
return { lhs, rhs };
279
281
}
280
282
281
283
template <typename MatcherLHS, typename ArgRHS>
282
- std::enable_if_t <Detail::is_generic_matcher<MatcherLHS>::value, Detail::MatchAnyOfGeneric<MatcherLHS, MatcherBase<ArgRHS>>>
284
+ std::enable_if_t <Detail::is_generic_matcher_v<MatcherLHS>,
285
+ Detail::MatchAnyOfGeneric<MatcherLHS, MatcherBase<ArgRHS>>>
283
286
operator || (MatcherLHS const & lhs, MatcherBase<ArgRHS> const & rhs) {
284
287
return { lhs, rhs };
285
288
}
286
289
287
290
template <typename ArgLHS, typename MatcherRHS>
288
- std::enable_if_t <Detail::is_generic_matcher<MatcherRHS>::value, Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>, MatcherRHS>>
291
+ std::enable_if_t <Detail::is_generic_matcher_v<MatcherRHS>,
292
+ Detail::MatchAnyOfGeneric<MatcherBase<ArgLHS>, MatcherRHS>>
289
293
operator || (MatcherBase<ArgLHS> const & lhs, MatcherRHS const & rhs) {
290
294
return { lhs, rhs };
291
295
}
0 commit comments