(gelöst) [C++] Kommentar durch Präprozessor erzeugen, legal?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

(gelöst) [C++] Kommentar durch Präprozessor erzeugen, legal?

Beitrag von Krishty »

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ß
Zuletzt geändert von Krishty am 29.11.2013, 18:37, insgesamt 1-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [C++] Kommentar durch Präprozessor erzeugen, legal?

Beitrag von Artificial Mind »

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
Benutzeravatar
B.G.Michi
Establishment
Beiträge: 163
Registriert: 07.03.2006, 20:38
Alter Benutzername: B.G.Michi
Kontaktdaten:

Re: [C++] Kommentar durch Präprozessor erzeugen, legal?

Beitrag von B.G.Michi »

siehe auch hier
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [C++] Kommentar durch Präprozessor erzeugen, legal?

Beitrag von Krishty »

Mal wieder typisch, dass Microsoft die Regeln laut wiederholt und dann offensichtlich bricht :-( Danke für die Hinweise!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten