Jmenné prostory
Varianty
Akce

# a ##

Z cppreference.com


Operátory preprocesoru # a ## jsou používány s příkazem preprocesoru #define

Použití:

  • # způsobí že první argument za # bude navrácený jako string v uvozovkách.
  • ## řetězí to co je před ## s tím co následuje.

Například, příkaz:

     #define to_string( s ) # s

kompilátor pouze přehodí řetězec z parametru a vrátí jako výsledek:

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

a vyhodnotí se takto:

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

Příklad použití příkazu ## :

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

Tento kód převede první parametr k druhému a vrátí jako výsledek

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

do tvaru

     cout << xy << endl;

který mimochodem zobrazí '10' na standardní výstup.

Související: #define