Je viens juste d'arriver sur un projet avec une base de code assez énorme.
Je travaille principalement avec C ++ et une grande partie du code qu'ils écrivent utilise la double négation pour leur logique booléenne.
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
Je sais que ces types sont des programmeurs intelligents, il est évident qu'ils ne le font pas par accident.
Je ne suis pas un expert C ++ chevronné, ma seule estimation de la raison pour laquelle ils font cela est qu'ils veulent s'assurer que la valeur évaluée est la représentation booléenne réelle. Alors ils le nient, puis le nient à nouveau pour le ramener à sa valeur booléenne réelle.
Est-ce correct ou est-ce que je manque quelque chose?