From: Junio C Hamano Date: Thu, 21 Sep 2017 01:31:56 GMT Subject: Re: [RFC PATCH 1/5] builtin/checkout: avoid usage of '!!' Message-ID: In-Reply-To: Kaartic Sivaraam writes: > Wait, I missed a contradiction here. > .. > Documentation/SubmittingPatches says: > >> - Some clever tricks, like using the !! operator with arithmetic >> constructs, can be extremely confusing to others. What does "with arithmetic constructs" mean? Would it refer to things like !!i != !!(j + 3) that unnecessarily obfuscates what is going on? The primary reason why !!ptr is good in the code that this patch touches is because what is doubly negated is a pointer, not an integer or other things. The called function does *not* limit its input to 0 or 1 (it wants 0 for false and everything else for true), so we wouldn't be doing !!i if what we are passing is already an integer. But we cannot just pass a pointer to such a parameter without getting the compiler upset.