かなり巨大なコード ベースのプロジェクトにたどり着きました。
私は主に C++ を扱っており、彼らが作成するコードの多くは、ブール論理に二重否定を使用しています。
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
私は彼らが知的なプログラマーであることを知っています。
私は熟練した C++ の専門家ではありません。なぜ彼らがこれを行っているのかについての私の唯一の推測は、評価される値が実際のブール表現であることを完全に肯定したいということです。したがって、彼らはそれを否定し、それを再び否定して実際のブール値に戻します。
これは正しいですか、何か不足していますか?