История изменений
Исправление fsb4000, (текущая версия) :
В каком-то одном из (кстати, в каком? или только в черновике?). В ISO C++ 98 точно разрешено.
Во всех. В том числе и в ISO C++ 98 такое запрещено.
искать слова такие: lexically identical to keywords.
В С++98 это в параграфе 17.4.3.1.1 Macro names
на 347(321) странице
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.
в текущем драфте 16.4.5.3.3 Macro names
написано так:
A translation unit that includes a standard library header shall not #define or #undef names declared in any standard library header.
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
Исходная версия fsb4000, :
В каком-то одном из (кстати, в каком? или только в черновике?). В ISO C++ 98 точно разрешено.
Во всех. В том числе и в ISO C++ 98 такое запрещено.
искать слова такие: lexically identical to keywords.
В С++98 это в параграфе 17.4.3.1.1 Macro names
на 347(321) странице
A translation unit that includes a header shall not contain any macros that define names declared or definedin that header. Nor shall such a translation unit define macros for names lexically identical to keywords.
в текущем драфте 16.4.5.3.3 Macro names
написано так:
A translation unit that includes a standard library header shall not #define or #undef names declared in any standard library header.
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