Hi,
Ist es wohldefiniert, den Präprozessor durch Konkatenieren von /* und */ einen Kommentar erzeugen zu lassen? In diesem Beispiel:
#define UNQUOTE3(LITERAL3) LITERAL3
#define UNQUOTE2(LITERAL2) UNQUOTE3(/LITERAL2/)
#define UNQUOTE(LITERAL) UNQUOTE2(*"*/"LITERAL"/*"*)
UNQUOTE("foo")
wird aus
"foo"
zwei Strings um den Bezeichner
""foo""
(Strings unterstrichen). Ich kann das wirklich gut gebrauchen, bin aber um die Portabilität besorgt :?
Gruß
(gelöst) [C++] Kommentar durch Präprozessor erzeugen, legal?
- Krishty
- Establishment
- Beiträge: 8351
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
(gelöst) [C++] Kommentar durch Präprozessor erzeugen, legal?
Zuletzt geändert von Krishty am 29.11.2013, 18:37, insgesamt 1-mal geändert.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [C++] Kommentar durch Präprozessor erzeugen, legal?
Hi,
ich bin mir ziemlich sicher, dass das nicht ok ist.
Zuerst kommt Tokenizen, danach sind Kommentare bereits durch whitespace-chars ersetzt.
Später kommt der Präprozessor, da gibt es gar keine Kommentare mehr.
Jedenfalls habe ich das so gelernt als ich im Rahmen von cppgm die ersten Schritte implementiert habe ;)
Cheers,
Mind
ich bin mir ziemlich sicher, dass das nicht ok ist.
Zuerst kommt Tokenizen, danach sind Kommentare bereits durch whitespace-chars ersetzt.
Später kommt der Präprozessor, da gibt es gar keine Kommentare mehr.
Jedenfalls habe ich das so gelernt als ich im Rahmen von cppgm die ersten Schritte implementiert habe ;)
Cheers,
Mind
- Krishty
- Establishment
- Beiträge: 8351
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [C++] Kommentar durch Präprozessor erzeugen, legal?
Mal wieder typisch, dass Microsoft die Regeln laut wiederholt und dann offensichtlich bricht :-( Danke für die Hinweise!