Namensräume
Varianten
Aktionen

# und ##

Aus cppreference.com


Die # und ## Präprozessor-Operatoren werden gemeinsam mit der #define-Direktive benutzt.

  • Die Benutzung von # führt dazu, dass das erste Argument nach dem # als Zeichenkette in Anführungszeichen zurückgegeben wird.
  • Die Benutzung von ## führt dazu, dass die beiden Argumente vor und nach dem ## aneinandergehängt werden.

Zum Beispiel bewirkt der Befehl

     #define to_string( s ) # s

dass der Compiler diesen Befehl:

     cout << to_string( Hello World! ) << endl;

zu folgendem umwandelt:

     cout << "Hello World!" << endl;



Es folgt ein Beispiel für den ##-Befehl:

     #define concatenate( a, b ) a ## b
     //...
     int xy = 10;
     //...

Obenstehender Befehl macht aus

     cout << concatenate( x, y ) << endl;

folgenden Code:

     cout << xy << endl;