Can i redefine keywords with #define in C?
I found this in C++ standards:
ISO/IEC 14882:1998 and ISO/IEC 14882:2003
17.4.3.1.1 Macro names [lib.macro.names]
2 A translation unit that includes a header shall not contain any macros that define names declared or defined in that header. Nor shall such a translation unit define macros for names lexically identical to keywords.
164) It is not permissible to remove a library macro definition by using the #undef directive.
ISO/IEC 14882:2011
17.6.4.3.1 Macro names [macro.names]
2 A translation unit shall not #define or #undef names lexically identical to keywords, to the identifiers listed in Table 3, or to the attribute-tokens described in 7.6.
So, we can't redefine keywords in C++98 / C++03 if we include any header files from Standard C++ Library, while in C++11 we can't do it in any translation unit, right?