10 #include <glog/logging.h>
18 #define CHECK_OPTION_IMPL(expr) \
19 __CheckOptionImpl(__FILE__, __LINE__, (expr), #expr)
20 #define CHECK_OPTION(expr) \
21 if (!__CheckOptionImpl(__FILE__, __LINE__, (expr), #expr)) { \
24 #define CHECK_OPTION_OP(name, op, val1, val2) \
25 if (!__CheckOptionOpImpl(__FILE__, __LINE__, (val1 op val2), val1, val2, \
26 #val1, #val2, #op)) { \
29 #define CHECK_OPTION_EQ(val1, val2) CHECK_OPTION_OP(_EQ, ==, val1, val2)
30 #define CHECK_OPTION_NE(val1, val2) CHECK_OPTION_OP(_NE, !=, val1, val2)
31 #define CHECK_OPTION_LE(val1, val2) CHECK_OPTION_OP(_LE, <=, val1, val2)
32 #define CHECK_OPTION_LT(val1, val2) CHECK_OPTION_OP(_LT, <, val1, val2)
33 #define CHECK_OPTION_GE(val1, val2) CHECK_OPTION_OP(_GE, >=, val1, val2)
34 #define CHECK_OPTION_GT(val1, val2) CHECK_OPTION_OP(_GT, >, val1, val2)
50 const char* expr_str);
52 template <
typename T1,
typename T2>
66 "[WARNING %s:%d] Check failed: %s %s %s (%s vs. %s)",
void InitializeGlog(char **argv)
bool __CheckOptionOpImpl(const char *file, const int line, const bool result, const T1 &val1, const T2 &val2, const char *val1_str, const char *val2_str, const char *op_str)
bool __CheckOptionImpl(const char *file, const int line, const bool result, const char *expr_str)
const char * __GetConstFileBaseName(const char *file)
std::string StringPrintf(const char *format,...)
std::string to_string(const T &n)