Date un'occhiata a questo codice:Empty "release" ASSERT programma di arresto anomalo delle macro?
#include <cassert>
#ifdef DEBUG
#define ASSERT(expr) assert(expr)
#else
#define ASSERT(expr)
#endif /* DEBUG */
il programma verrà eseguito solo se ho DEBUG
definito, altrimenti si bloccherà e terminare senza risultati. Sto usando MinGW in Eclipse Indigo CDT. Il consiglio è apprezzato!
Questo è probabilmente il secondo più motivo comune (dopo le ottimizzazioni) per le differenze tra le build di debug e release. –
Grazie per aver risposto, solo una domanda. Sarebbe una buona pratica semplicemente '#define ASSERT (expr) (expr)' (come quello che Kerrek SB aveva menzionato) per i non-debug, e non preoccuparti solo degli effetti collaterali da lì in poi? Ho la sensazione che questo renderebbe il mio codice più leggibile. – AutoBotAM
@AutoBotAM: Se si chiama 'ASSERT' 'VERIFY' invece, quindi sicuro, andare avanti. Ma non ridefinire 'ASSERT', le persone lo sanno e si aspettano che non valuti l'espressione sulle build di' NDEBUG'. –