[This question is related to but not the same as this one.]
If I try to use values of certain types as boolean expressions, I get a warning. Rather than su
Yes it is safe.
0 is interpreted as false, everthing else is true, hence !5 comes out as a false !0 comes out as true so !!5 comes out as true