assert只在Debug环境下起作用,而在Release下相当于废话,不诊断也不执行所带的语句。
如:
bool DoSomething()
{
bool bReturnValue = true;
......
return bReturnValue;
}
void Function()
{
assert(DoSomething());
......
}
在Release版本下assert不诊断,DoSomething()语句也不执行。
可是有时候这样会带来问题,因为我们也许需要在Release环境下也让后面的语句执行,该怎么办呢?
verify便解决了这个问题,verify在Debug版本下的作用与assert一样,可是到了Release版本下,verify不诊断,但是它所包含的语句却是执行的。
assert Debug:诊断,执行所带语句; Release: 不诊断,不执行所带语句
verify Debug:诊断,执行所带语句; verify: 不诊断,执行所带语句