What can be a reason for converting an integer to a boolean in this way?
bool booleanValue = !!integerValue;
bool booleanValue = integerValue;
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.
bool isNonZero = (integerValue != 0); ... be clear.