Neudefinition von Schlüsselwörtern in C / C ++

Kann ich Keywords mit #define in C neu definieren?

Ich fand dies in C ++ - Standards:

ISO / IEC 14882: 1998 und ISO / IEC 14882: 2003

17.4.3.1.1 Makronamen [lib.macro.names]

2 Eine Übersetzungseinheit, die einen Header enthält, darf keine Makros enthalten, die in diesem Header deklarierte oder definierte Namen definieren. Eine solche Übersetzungseinheit darf auch keine Makros für Namen definieren, die mit Stichwörtern lexikalisch identisch sind.

164) Es ist nicht zulässig, eine Bibliotheksmakrodefinition mit der Direktive #undef zu entfernen.

ISO / IEC 14882: 2011

17.6.4.3.1 Makronamen [macro.names]

2 Eine Übersetzungseinheit darf keine Namen definieren oder definieren, die lexikalisch mit Schlüsselwörtern, den in Tabelle 3 aufgeführten Kennungen oder den in 7.6 beschriebenen Attributtoken identisch sind.

Daher können wir Schlüsselwörter in C ++ 98 / C ++ 03 nicht neu definieren, wenn wir Header-Dateien aus der Standard-C ++ - Bibliothek einbeziehen, während wir dies in C ++ 11 in keiner Übersetzungseinheit tun können, oder?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage