ENSURE and VALIDATE

ENSURE(expression)

VALIDATE(expression)

Remarks

The ENSURE and VALIDATE preprocessor macros are used in similar fashion to MFC's VERIFY and ASSERT macros respectively but with the following differences (features):

Example

    //Code goes away when VALIDATE is disabled by defining PB_DISABLE_VALIDATE.
VALIDATE(IsValid());

    //Logs "ENSURE(pszString != NULL) == FALSE" as a _PB_ERROR message.
if (ENSURE(pszString != NULL))
    HandleHappyString();
else
    HandleNULLString();

or:

return ENSURE(pszString /*!= NULL*/) ? S_OK : E_FAIL;