断言 VS 静态断言
特性 | 断言 (assert ) |
静态断言 (static_assert ) |
---|---|---|
检查时间 | 运行时 | 编译时 |
使用场景 | 检查运行时假设和不变性 | 验证编译时条件 |
影响 | 条件不成立时终止程序 | 条件不成立时引发编译错误 |
性能 | 在非调试模式下可关闭,以提高性能 | 不影响运行时性能 |
错误消息 | 提供错误信息并终止程序 | 编译时错误信息 |
初始化要求 | 需要包含 <cassert> |
C++11 引入,无需额外头文件 |
语法 | assert(condition); |
static_assert(condition, "Error message"); |
nullptr VS NULL VS 0
特性 | nullptr |
NULL |
0 </ |
---|