验证宏:
- 功能类似assert断言,但不受DEBUG模式控制即非DEBUG模式也生效
- 如果验证失败,会写FATAL日志并终止程序运行
- CHECK(condition)
- 比较验证:
- CHECK_EQ(arg1,arg2)
- CHECK_NE(arg1,arg2)
- CHECK_LE(arg1,arg2)
- CHECK_LT(arg1,arg2)
- CHECK_GE(arg1,arg2)
- CHECK_GT(arg1,arg2)
- CHECK_NOTNULL(arg)
- 字符串比较:
- CHECK_STREQ
- CHECK_STRNE
- CHECK_STRCASEEQ
- CHECK_STRCASENE
- 浮点数验证:
- CHECK_DOUBLE_EQ
- CHECK_NEAR
- 其中CHECK_NOTNULL不能作为日志输出流使用
- 比较验证中,在输出中会输出比较值,所以要求比较值重载了输出操作符(operator<<(ostream,...))
- 在验证宏中,参数会是匿名参数如CHECK(string("abc")[1],'b')