Перегрузка макроса препроцессора C / C ++ по структуре его аргумента

Я хотел бы написать макрос препроцессора, который выполняет одно действие, если он 'Аргумент s - это заключенный в скобки кортеж из токенов, например:

MY_MACRO((x, y))

и что-то еще, если это всего лишь один токен, например:

MY_MACRO(x)

Возможно ли это?

Как насчет различения количества разделенных пробелами токенов, т.е. между MY_MACRO (x) и MY_MACRO (xy) ?

Обратите внимание, что я не пытаюсь выполнить перегрузку на основе количества аргументов - это унарный макрос во всех случаях.

РЕДАКТИРОВАТЬ : я готов использовать макросы с переменным числом аргументов, если они помогают

6
задан a3f 31 March 2015 в 03:19
поделиться