Тема: ## оператор препроцесора в C і в C++
Не часто таке бачу, оператор ## знайшов в файлі <stdint.h>
#define UINT32_C(x) (x ## U)
#define UINT64_C(x) (x ## ULL)
і в інших файлах стандартної бібліотеки.
В списках звичайних операторів його не є, в основному коді (в класах, функціях, операторах, шаблонах) його користувати не можу, тому зробив висновок що це щось тільки для макросів.
Пошук в мережі дуже скупий, але якісь результати таки знайшов: "c macros ##" --> "# і ## в макросах" (en).
Пишуть що ## конкатенує літерали, і там приклад :
#include <stdio.h>
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main(int argc, char **argv) {
printf("%s\n", h(f(1,2))); // 12
printf("%s\n", g(f(1,2))); // f(1,2)
return 0;
}
Якщо маєте коменти, то кидайте.