Was ist #nomacros (EP003), und es ist am Leben?
-
20-08-2019 - |
Frage
Die Entwicklung WG Problemliste von 14 Februar 2004 hat ...
EP003. #nomacros. Siehe EI001. Hinweis durch Stroustrup geschrieben werden.
In groben (oder exakt) Bedingungen, was #nomacros
, und es ist erhältlich als überall Erweiterung? Es wäre ein nützliches Diagnosetool in einem aktuellen Projekt Tausende von Dateien von 1995-Jahrgang C ++ zu einem 2005-Compiler, im Vergleich zu der Alternative beteiligt gewesen Portierung des Codes durch den Prä-Prozessor ausgeführt wird und die .i Dateien für Überraschungspakete zu untersuchen.
Lösung
Es ist nur ein Vorschlag unter Berücksichtigung aktiv für die Aufnahme in C ++, aber in den aktuellen Compiler noch nicht verfügbar. Wenn Sie weiter unten auf der Seite zu lesen, heißt es:
ES042. #nospam.
Geben Sie einen Präprozessor Mechanismus für Makros Ein- und Aussteigen einen Umfang zu begrenzen. Zum Beispiel:
#nomacros
#in A B
…
#out A X
#endnomacros
Keine Makros werden zwischen #nomacros und #endnomacros erweitert, sofern nicht ausdrücklich durch #in aktiviert. Keine Makros definiert zwischen #nomacros und #endnomacros wird nach #endnomacros definiert werden, sofern nicht ausdrücklich durch #OUT aktiviert.
Vorschlag von Bjarne Stroustrup. Nach der Diskussion in der EWG wurde beschlossen, nach einer Lösung zu suchen, die Makros von Makros erlaubt in durch „#in“ verwendet dürfen nur in den Ausbau solcher Makros verwendet werden.
#nomacros sollte Nest.