Comma in C/C++ macro

Say we have a macro like this

#define FOO(type,name) type name
Which we could use like

FOO(int, int_var);
But not always as simply as that:

FOO(std::map, map_var); // error: …

Rare cases where MACROs must be used

Debugging macros can take a lot of time. We are much better off
avoiding them except in the very rare cases when neither constants,
functions nor templates can do what we want.
What are the rare …

Racket reader macros

Is there any way to make simple reader macros in Racket. I mean a generalization like this:

(define-reader-syntax “‘” quote)
; finds expressions that start with “‘” and wraps them in `(quote …)`
‘(…