Yes, this is valid C++ :
if (false or (true and not false)) ...
Among others such as bitand
and xor
. In C, they used to be macros, but now they are keywords ! You can even overload them ! Then why would someone ever teach or write something like :
if (false || (true && !(false))) ...
Why is nobody using them ?
Visual C++ does not support them.
Because they don't allow mixed C/C++ code without including additional header files, are less known to programmers, and it's not immediately clear whether
and
is the short-circuit or bitwise version.People just don't know about them(I didn't until now).
Why nobody? Some use them. Others think that symbols are more readable than words.