In the Debug version of MFC, evaluates its argument.
Specifies an expression (including pointer values) that evaluates to nonzero or 0.
If the result is 0, the macro prints a diagnostic message and halts the program. If the condition is nonzero, it does nothing.
The diagnostic message has the form
assertion failed in file <name> in line <num>
where name is the name of the source file and num is the line number of the assertion that failed in the source file.
In the Release version of MFC, VERIFY evaluates the expression but does not print or interrupt the program. For example, if the expression is a function call, the call will be made.
// VERIFY can be used for things that should never fail, though // you may want to make sure you can provide better error recovery // if the error can actually cause a crash in a production system. // It _is_ possible that GetDC() may fail, but the out-of-memory // condition that causes it isn't likely. For a test application, // this use of VERIFY() is fine. For any production code, this // usage is dubious. // get the display device context HDC hdc; VERIFY( (hdc = ::GetDC(NULL)) != NULL); // give the display context back ::ReleaseDC(hdc);