一 assert
在C++中,<cassert>或<cassert.h>中提供了assert宏(运行期断言)。可以定义NDEBUG来禁用assert宏。
二 static_asser
C++11 静态断言static_assert,编译期断言。
static_assert(常量表达式,提示字符串)
两个参数,一个是断言表达式,由于是在编译期间,所以断言表达式必须是常量表达式。一个是提示信息,可以自定义。
static_assert是C++的标准语法,不需要引用头文件。
三 举例
#include <iostream>
#include <cassert>
int main() {
{
int i = 22;
assert(i != 22);
}
{
const int i = 22;
static_assert(i != 22, "i equals to 22");
}
}
本文深入探讨了C++中的断言机制,包括运行期断言assert和编译期断言static_assert的使用方法及特点。assert宏在运行时检查条件是否为真,而static_assert则在编译阶段进行检查。
96

被折叠的 条评论
为什么被折叠?



