Eventuali duplicati:
Double Negation in C++ codePerché usare due '!' operatori su un valore booleano?
Quando ho scansionato il codice sorgente Webkit, ho trovato un uso strano del booleano "non" operatore !
:
BOOL enabled;
if (SUCCEEDED(sharedPreferences->continuousSpellCheckingEnabled(&enabled)))
continuousSpellCheckingEnabled = !!enabled;
if (SUCCEEDED(sharedPreferences->grammarCheckingEnabled(&enabled)))
grammarCheckingEnabled = !!enabled;
Perché non usano enabled
direttamente invece di !!enabled
?
Niente qui lo menziona esplicitamente, ma che 'BOOL' è molto probabilmente un numero intero di qualche tipo. A giudicare da 'SUCCEEDED', presumo winapi, in cui è' int'. – chris