LINUX.ORG.RU

История изменений

Исправление 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