2-1 断言
2.1 断言
2.1.1 断言的定义
一般来说,断言
assert
用于debug模式下测试可能出现的问题,在release模式下,使用宏NDEBUG
来将其注释掉。下面是一个assert的大致定义。
|
说明:
-
assertImpl由每个编译器自己实现的。接收三个参数,分别是文件名,所在行数和cond的文本。
-
常用定义NDEBUG的方式:作为编译选项给整个程序定义
-
g++ -DNDEBUG myfile.cpp
* 不要用断言来验证函数的参数,而是抛出异常`logic_error`
#### 2.1.2 断言的案例
```C++
void MyVector::push_back(int x)
{
if(nextSlot==capacity)
{
grow();
}
assert(nextSlot<capacity); //如果空间增长失败
data[nextSlot++] = x;
}
-
发布于