@@ -196,130 +196,92 @@ void run_test_for_object_types(Validator validate, Invalidator invalidate)
196
196
{
197
197
if constexpr (AllowForType)
198
198
{
199
- std::map<StringType, int > map1;
200
- std::map<StringType, std::string> map2;
201
- std::map<StringType, fly::Json> map3;
202
- validate (" map" , map1, map2, map3);
203
-
204
- std::multimap<StringType, int > multimap1;
205
- std::multimap<StringType, std::string> multimap2;
206
- std::multimap<StringType, fly::Json> multimap3;
207
- validate (" multimap" , multimap1, multimap2, multimap3);
208
-
209
- std::unordered_map<StringType, int > unordered_map1;
210
- std::unordered_map<StringType, std::string> unordered_map2;
211
- std::unordered_map<StringType, fly::Json> unordered_map3;
212
- validate (" unordered_map" , unordered_map1, unordered_map2, unordered_map3);
213
-
214
- std::unordered_multimap<StringType, int > unordered_multimap1;
215
- std::unordered_multimap<StringType, std::string> unordered_multimap2;
216
- std::unordered_multimap<StringType, fly::Json> unordered_multimap3;
217
- validate (
218
- " unordered_multimap" ,
219
- unordered_multimap1,
220
- unordered_multimap2,
221
- unordered_multimap3);
199
+ validate.template operator ()<
200
+ std::map<StringType, int >,
201
+ std::map<StringType, std::string>,
202
+ std::map<StringType, fly::Json>>(" map" );
203
+
204
+ validate.template operator ()<
205
+ std::multimap<StringType, int >,
206
+ std::multimap<StringType, std::string>,
207
+ std::multimap<StringType, fly::Json>>(" multimap" );
208
+
209
+ validate.template operator ()<
210
+ std::unordered_map<StringType, int >,
211
+ std::unordered_map<StringType, std::string>,
212
+ std::unordered_map<StringType, fly::Json>>(" unordered_map" );
213
+
214
+ validate.template operator ()<
215
+ std::unordered_multimap<StringType, int >,
216
+ std::unordered_multimap<StringType, std::string>,
217
+ std::unordered_multimap<StringType, fly::Json>>(" unordered_multimap" );
222
218
}
223
219
else
224
220
{
225
- std::map<StringType, fly::Json> map;
226
- invalidate (" map" , map);
227
-
228
- std::multimap<StringType, fly::Json> multimap;
229
- invalidate (" multimap" , multimap);
230
-
231
- std::unordered_map<StringType, fly::Json> unordered_map;
232
- invalidate (" unordered_map" , unordered_map);
233
-
234
- std::unordered_multimap<StringType, fly::Json> unordered_multimap;
235
- invalidate (" unordered_multimap" , unordered_multimap);
221
+ invalidate.template operator ()<std::map<StringType, fly::Json>>(" map" );
222
+ invalidate.template operator ()<std::multimap<StringType, fly::Json>>(" multimap" );
223
+ invalidate.template operator ()<std::unordered_map<StringType, fly::Json>>(" unordered_map" );
224
+ invalidate.template operator ()<std::unordered_multimap<StringType, fly::Json>>(
225
+ " unordered_multimap" );
236
226
}
237
227
}
238
228
239
229
template <
240
230
typename JsonType,
241
231
typename StringType,
242
- typename Validator2,
243
- typename Validator3,
232
+ typename Validator,
244
233
typename Invalidator,
245
234
bool AllowForType = std::is_same_v<JsonType, fly::json_array_type>>
246
- void run_test_for_array_types (Validator2 validate2, Validator3 validate3, Invalidator invalidate)
235
+ void run_test_for_array_types (Validator &&validate, Invalidator && invalidate)
247
236
{
248
237
if constexpr (AllowForType)
249
238
{
250
- std::array<int , 4 > array1;
251
- std::array<StringType, 4 > array2;
252
- std::array<fly::Json, 4 > array3;
253
- validate3 (" array" , array1, array2, array3);
239
+ validate.template
240
+ operator ()<std::array<int , 4 >, std::array<StringType, 4 >, std::array<fly::Json, 4 >>(
241
+ " array" );
254
242
255
- std::deque<int > deque1;
256
- std::deque<StringType> deque2;
257
- std::deque<fly::Json> deque3;
258
- validate3 (" deque" , deque1, deque2, deque3);
243
+ validate.template
244
+ operator ()<std::deque<int >, std::deque<StringType>, std::deque<fly::Json>>(" deque" );
259
245
260
- std::forward_list< int > forward_list1;
261
- std::forward_list<StringType> forward_list2;
262
- std::forward_list<fly::Json> forward_list3;
263
- validate3 (" forward_list" , forward_list1, forward_list2, forward_list3 );
246
+ validate. template operator ()<
247
+ std::forward_list<int >,
248
+ std::forward_list<StringType>,
249
+ std::forward_list<fly::Json>> (" forward_list" );
264
250
265
- std::list<int > list1;
266
- std::list<StringType> list2;
267
- std::list<fly::Json> list3;
268
- validate3 (" list" , list1, list2, list3);
251
+ validate.template operator ()<std::list<int >, std::list<StringType>, std::list<fly::Json>>(
252
+ " list" );
269
253
270
- std::multiset<int > multiset1;
271
- std::multiset<StringType> multiset2;
272
- // std::multiset<fly::Json> multiset3;
273
- validate2 (" multiset" , multiset1, multiset2);
254
+ validate.template
255
+ operator ()<std::multiset<int >, std::multiset<StringType>, std::multiset<fly::Json>>(
256
+ " multiset" );
274
257
275
- std::set<int > set1;
276
- std::set<StringType> set2;
277
- // std::set<fly::Json> set3;
278
- validate2 (" set" , set1, set2);
258
+ validate.template operator ()<std::set<int >, std::set<StringType>, std::set<fly::Json>>(
259
+ " set" );
279
260
280
- std::unordered_multiset< int > unordered_multiset1;
281
- std::unordered_multiset<StringType> unordered_multiset2;
282
- // std::unordered_multiset<fly::Json> unordered_multiset3;
283
- validate2 (" unordered_multiset" , unordered_multiset1, unordered_multiset2 );
261
+ validate. template operator ()<
262
+ std::unordered_multiset<int >,
263
+ std::unordered_multiset<StringType>,
264
+ std::unordered_multiset<fly::Json>> (" unordered_multiset" );
284
265
285
- std::unordered_set< int > unordered_set1;
286
- std::unordered_set<StringType> unordered_set2;
287
- // std::unordered_set<fly::Json> unordered_set3;
288
- validate2 (" unordered_set" , unordered_set1, unordered_set2 );
266
+ validate. template operator ()<
267
+ std::unordered_set<int >,
268
+ std::unordered_set<StringType>,
269
+ std::unordered_set<fly::Json>> (" unordered_set" );
289
270
290
- std::vector<int > vector1;
291
- std::vector<StringType> vector2;
292
- std::vector<fly::Json> vector3;
293
- validate3 (" vector" , vector1, vector2, vector3);
271
+ validate.template
272
+ operator ()<std::vector<int >, std::vector<StringType>, std::vector<fly::Json>>(" vector" );
294
273
}
295
274
else
296
275
{
297
- std::array<int , 4 > array;
298
- invalidate (" array" , array);
299
-
300
- std::deque<int > deque;
301
- invalidate (" deque" , deque);
302
-
303
- std::forward_list<int > forward_list;
304
- invalidate (" forward_list" , forward_list);
305
-
306
- std::list<int > list;
307
- invalidate (" list" , list);
308
-
309
- std::multiset<int > multiset;
310
- invalidate (" multiset" , multiset);
311
-
312
- std::set<int > set;
313
- invalidate (" set" , set);
314
-
315
- std::unordered_multiset<int > unordered_multiset;
316
- invalidate (" unordered_multiset" , unordered_multiset);
317
-
318
- std::unordered_set<int > unordered_set;
319
- invalidate (" unordered_set" , unordered_set);
320
-
321
- std::vector<int > vector;
322
- invalidate (" vector" , vector);
276
+ invalidate.template operator ()<std::array<int , 4 >>(" array" );
277
+ invalidate.template operator ()<std::deque<int >>(" deque" );
278
+ invalidate.template operator ()<std::forward_list<int >>(" forward_list" );
279
+ invalidate.template operator ()<std::list<int >>(" list" );
280
+ invalidate.template operator ()<std::multiset<int >>(" multiset" );
281
+ invalidate.template operator ()<std::set<int >>(" set" );
282
+ invalidate.template operator ()<std::unordered_multiset<int >>(" unordered_multiset" );
283
+ invalidate.template operator ()<std::unordered_set<int >>(" unordered_set" );
284
+ invalidate.template operator ()<std::vector<int >>(" vector" );
323
285
}
324
286
}
325
287
0 commit comments