CPP {报警,assert,static_assert}
报警
static_assert
static_assert( is_integral_v<T>, "");
, 在编译期间 如果所有的T
都是整型类型, 那么这行代码会变成: /* PASSED: static_assert(is_integral_v<T>, ""); */
, 即成为了一条注释;
@DELI;
有些判断条件(比如他是constexpr
) 不必使用(运行期的assert
)去判断, 可以使用静态报警(即在预编译期间);
比如 求LCA的倍增法, 有如下代码
static constexpr int __PointsCountMaximum_ = 100005;
static constexpr int __PowerRangeMaximum_ = 20;
static_assert( (1 << __PowerRangeMaximum_) >= __PointsCountMaximum_, "");
static_assert( bool _cond, const char * _msg)
;
assert
assert( bool B);
當B為false
時 程序會立刻報警退出(錯誤碼/退出碼為3
);