A translation unit shall not
#define or
#undef
names lexically identical
to keywords,
to the identifiers listed in Table
4, or
to the
attribute-tokens described in
[dcl.attr],
except that the names
likely and
unlikely may be
defined as function-like macros (
[cpp.replace])
.