@@ -424,7 +424,22 @@ The macros CV_Assert (and CV_DbgAssert(expr)) evaluate the specified expression.
424
424
raise an error (see cv::error). The macro CV_Assert checks the condition in both Debug and Release
425
425
configurations while CV_DbgAssert is only retained in the Debug configuration.
426
426
*/
427
- #define CV_Assert ( expr ) if (!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ )
427
+
428
+ #define CV_VA_NUM_ARGS_HELPER (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N
429
+ #define CV_VA_NUM_ARGS (...) CV_VA_NUM_ARGS_HELPER(__VA_ARGS__, 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 )
430
+
431
+ #define CV_Assert_1 ( expr ) if (!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ )
432
+ #define CV_Assert_2 ( expr1, expr2 ) CV_Assert_1(expr1); CV_Assert_1(expr2)
433
+ #define CV_Assert_3 ( expr1, expr2, expr3 ) CV_Assert_2(expr1, expr2); CV_Assert_1(expr3)
434
+ #define CV_Assert_4 ( expr1, expr2, expr3, expr4 ) CV_Assert_3(expr1, expr2, expr3); CV_Assert_1(expr4)
435
+ #define CV_Assert_5 ( expr1, expr2, expr3, expr4, expr5 ) CV_Assert_4(expr1, expr2, expr3, expr4); CV_Assert_1(expr5)
436
+ #define CV_Assert_6 ( expr1, expr2, expr3, expr4, expr5, expr6 ) CV_Assert_5(expr1, expr2, expr3, expr4, expr5); CV_Assert_1(expr6)
437
+ #define CV_Assert_7 ( expr1, expr2, expr3, expr4, expr5, expr6, expr7 ) CV_Assert_6(expr1, expr2, expr3, expr4, expr5, expr6 ); CV_Assert_1(expr7)
438
+ #define CV_Assert_8 ( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8 ) CV_Assert_6(expr1, expr2, expr3, expr4, expr5, expr6, expr7 ); CV_Assert_1(expr8)
439
+ #define CV_Assert_9 ( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9 ) CV_Assert_6(expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8 ); CV_Assert_1(expr9)
440
+ #define CV_Assert_10 ( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9, expr10 ) CV_Assert_6(expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9 ); CV_Assert_1(expr10)
441
+
442
+ #define CV_Assert (...) CVAUX_CONCAT(CV_Assert_, CV_VA_NUM_ARGS(__VA_ARGS__)) (__VA_ARGS__)
428
443
429
444
/* * same as CV_Error(code,msg), but does not return */
430
445
#define CV_ErrorNoReturn ( code, msg ) cv::errorNoReturn( code, msg, CV_Func, __FILE__, __LINE__ )
0 commit comments