8 #include "benchmark/export.h" 9 #include "internal_macros.h" 12 #if defined(__GNUC__) || defined(__clang__) 13 #define BENCHMARK_NOEXCEPT noexcept 14 #define BENCHMARK_NOEXCEPT_OP(x) noexcept(x) 15 #elif defined(_MSC_VER) && !defined(__clang__) 17 #define BENCHMARK_NOEXCEPT noexcept 18 #define BENCHMARK_NOEXCEPT_OP(x) noexcept(x) 20 #define BENCHMARK_NOEXCEPT 21 #define BENCHMARK_NOEXCEPT_OP(x) 23 #define __func__ __FUNCTION__ 25 #define BENCHMARK_NOEXCEPT 26 #define BENCHMARK_NOEXCEPT_OP(x) 32 typedef void(AbortHandlerT)();
35 AbortHandlerT*& GetAbortHandler();
37 BENCHMARK_NORETURN
inline void CallAbortHandler() {
47 CheckHandler(
const char* check,
const char* file,
const char* func,
int line)
48 : log_(GetErrorLogInstance()) {
49 log_ << file <<
":" << line <<
": " << func <<
": Check `" << check
53 LogType& GetLog() {
return log_; }
55 #if defined(COMPILER_MSVC) 57 #pragma warning(disable : 4722) 59 BENCHMARK_NORETURN ~
CheckHandler() BENCHMARK_NOEXCEPT_OP(
false) {
63 #if defined(COMPILER_MSVC) 82 (b ? ::benchmark::internal::GetNullLogInstance() \ 83 : ::benchmark::internal::CheckHandler(#b, __FILE__, __func__, __LINE__) \ 86 #define BM_CHECK(b) ::benchmark::internal::GetNullLogInstance() 91 #define BM_CHECK_EQ(a, b) BM_CHECK((a) == (b)) 92 #define BM_CHECK_NE(a, b) BM_CHECK((a) != (b)) 93 #define BM_CHECK_GE(a, b) BM_CHECK((a) >= (b)) 94 #define BM_CHECK_LE(a, b) BM_CHECK((a) <= (b)) 95 #define BM_CHECK_GT(a, b) BM_CHECK((a) > (b)) 96 #define BM_CHECK_LT(a, b) BM_CHECK((a) < (b)) 98 #define BM_CHECK_FLOAT_EQ(a, b, eps) BM_CHECK(std::fabs((a) - (b)) < (eps)) 99 #define BM_CHECK_FLOAT_NE(a, b, eps) BM_CHECK(std::fabs((a) - (b)) >= (eps)) 100 #define BM_CHECK_FLOAT_GE(a, b, eps) BM_CHECK((a) - (b) > -(eps)) 101 #define BM_CHECK_FLOAT_LE(a, b, eps) BM_CHECK((b) - (a) > -(eps)) 102 #define BM_CHECK_FLOAT_GT(a, b, eps) BM_CHECK((a) - (b) > (eps)) 103 #define BM_CHECK_FLOAT_LT(a, b, eps) BM_CHECK((b) - (a) > (eps))
Definition: benchmark.h:338