I would have a similar problem:
if (functionA()) NEW_ASSERT(functionB());else functionC();
would become:
if (functionA()) { if (functionB()) {...} };else functionC();
if (functionA()) NEW_ASSERT(functionB());else functionC();
if (functionA()) { if (functionB()) {...} };else functionC();
#define NEW_ASSERT(thing) \ if(thing) \ ; \ else \ if (AfxMessageBox("NEW_ASSERT error: " #thing "... ignore?",MB_YESNO|MB_ICONSTOP|MB_APPLMODAL)==IDNO) \ exit(0); \ else \ VERIFY(false);
void AssertFunc(char *file, int line, char *expr, bool a);#define ASSERT(X) AssertFunc(__FILE__,__LINE__, #X, X)void AssertFunc(char *file, int line, char *expr, bool a){ if(!a) { // . // . // . }}