|
|
@ -118,9 +118,11 @@ namespace cv { namespace debug_build_guard { } using namespace debug_build_guard |
|
|
|
# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302) |
|
|
|
# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302) |
|
|
|
# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); }) |
|
|
|
# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); }) |
|
|
|
# else |
|
|
|
# else |
|
|
|
|
|
|
|
namespace cv { |
|
|
|
template <bool x> struct CV_StaticAssert_failed; |
|
|
|
template <bool x> struct CV_StaticAssert_failed; |
|
|
|
template <> struct CV_StaticAssert_failed<true> { enum { val = 1 }; }; |
|
|
|
template <> struct CV_StaticAssert_failed<true> { enum { val = 1 }; }; |
|
|
|
template<int x> struct CV_StaticAssert_test {}; |
|
|
|
template<int x> struct CV_StaticAssert_test {}; |
|
|
|
|
|
|
|
} |
|
|
|
# define CV_StaticAssert(condition, reason)\ |
|
|
|
# define CV_StaticAssert(condition, reason)\ |
|
|
|
typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast<bool>(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__) |
|
|
|
typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast<bool>(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__) |
|
|
|
# endif |
|
|
|
# endif |
|
|
|