在释放模式(VC++)中是否忽略了assert(false)?
如果在发布模式下编译包括定义NDEBUG,那么是.
见断言(CRT)
断言宏(至少通常是宏)通常在发布代码中定义为no-op.它只会在调试代码中触发.话说回来.我曾在定义自己的断言宏的地方工作,并在调试和发布模式下触发.
我被教导将断言用于"永不"假的条件,例如函数的前置条件.
IIRC的assert(x)是一个宏,在定义NDEBUG时,该宏的计算结果为空,这是Visual Studio中内部版本的标准。