Why use !! when converting int to bool?
boolean, c++, integer
Solution
The problems with the "!!" idiom are that it's terse, hard to see, easy to mistake for a typo, easy to drop one of the "!'s", and so forth. I put it in the "look how cute we can be with C/C++" category. Just write `bool isNonZero = (integerValue != 0);` ... be clear.
Problem
What can be a reason for converting an integer to a boolean in this way? ``` bool booleanValue = !!integerValue; ``` instead of just ``` bool booleanValue = integerValue; ``` All I know is that in VC++7 the latter will cause C4800 warning and the former will not. Is there any other difference between the two?