The <ciso646>
header (from the C standard <iso646.h>
header) does nothing in C++. In C, it defines a small number of macros, such as and
for &&
, but these macros are all reserved keywords in C++. The <ciso646>
header exists only for the sake of completeness: every header in the C standard has an equivalent in C++.
Not all C++ compilers correctly implement the alternative tokens such as and
. These compilers might use <ciso646>
to declare these keywords as macros. For maximum portability to these non-conforming compilers, include the <ciso646>
header when you want to use any alternative token keywords. (See Chapter 1, Language Rules, for more information about the alternative tokens.)