Смущен использованием двойного логического оператора not (!!) [duplicate]

На этот вопрос уже есть ответ:

Двойное отрицание в коде C ++ 14 ответов Что такое "!!" в Си? [Дубликат] 7 ответов

У меня есть код на C ++, который широко использует!!. Я немного сбит с толку, потому что, насколько я знаю,!! сам по себе не оператор, а два! друг за другом. Так что это будет означать, что!!foo такой же, как простоfoo.

Есть ли место и / или причина, когда!! на самом деле имеет смысл? Я думал о том, может ли это иметь немного мудрый смысл? Итак, вы сначала выполните некоторую мудрую операцию надfoo а потом! на результат? Но я не помню! используется как немного мудрый оператор и, кажется, не находит никакой ссылки, говорящей мне, что это тоже. Насколько я могу сказать,! in используется только как логический оператор и в этом случае

!!foo == foo

Ответы на вопрос(5)

Ваш ответ на вопрос