Eventuali duplicati:
Double Negation in C++ codeQual è l'utilizzo di "!!" (negando due volte)?
Diciamo:
bool var = !!true;
assegnerà "vero" alla variabile. Sembra inutile, ma stavo guardando la definizione di Visual Studio di "affermare", ed è:
#define assert(_Expression) (void)((!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0))
Perché si nega il "_Expression" due volte?
Mi chiedo che vogliono forzare il "!" operatore da chiamare (nel caso sia sovraccarico), ma ciò non sembra essere una buona ragione.
Buona domanda, +1 – jlledom
http://stackoverflow.com/questions/248693/double-negation-in-c-code – cnicutar
http://stackoverflow.com/questions/1310344/why-use-when-converting -int-to-bool – cnicutar