В этом случае строка токена является телом макроса.В
#defined MAKE_MY_FUNC(x) void x(int bar)
часть void x(int foo)
будет считаться строкой токена , а когда вы используете MAKE_MY_FUNC
, как
MAKE_MY_FUNC(foo){ std::cout << bar; }
, тогда токен будет подставлена строка , а код будет преобразован в
void foo(int foo){ std::cout << bar; }
Ваша статья дает вам то, что во втором абзаце называется token-string
Аргумент token-string состоит из серии токенов, таких как ключевые слова, константы или полные операторы.Один или несколько символов пробела должны отделять строку токена от идентификатора .Этот пробел не считается частью замещенного текста, а также пробелы, которые следуют за последним маркером текста.