Acabo de entrar en un proyecto con una base de código bastante grande.Double Negation en C++ código
Principalmente trato con C++ y gran parte del código que escriben usa doble negación para su lógica booleana.
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
Sé que estos tipos son programadores inteligentes, es obvio que no están haciendo esto por accidente.
No soy un experto en C++ experimentado, mi única conjetura de por qué lo hacen es que quieren hacer absolutamente positivo que el valor que se evalúa es la representación booleana real. Entonces lo niegan, luego lo niegan nuevamente para volver a su valor booleano real.
¿Es esto correcto o me falta algo?
Este tema se ha debatido [aquí] (http://stackoverflow.com/questions/206106/is-a-safe-way-to-convert-to-bool-in-c#206122). – Dima
marque aquí, ya se lo preguntó, [¡¡¡¡¡¡¡¡¡¡¡Es !! una forma segura de convertir a bool en C++?] (http://stackoverflow.com/questions/206106/is-a-safe-way-to-convert-to-bool-in-c) –
Posible duplicado de [Is !! una forma segura de convertir a bool en C++?] (https://stackoverflow.com/questions/206106/is-a-safe-way-to-convert-to-bool-in-c) – EdChum