Acabo de llegar a un proyecto con una base de código bastante grande.
Principalmente estoy tratando 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 experimentado en C ++, mi única suposición de por qué están haciendo esto 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 correcto o me falta algo?