Перегрузка макроса по количеству аргументов

У меня есть два макроса FOO2иFOO3:

#define FOO2(x,y)...
#define FOO3(x,y,z)...

Я хочу определить новый макрос FOOследующим образом:

#define FOO(x,y) FOO2(x,y)
#define FOO(x,y,z) FOO3(x,y,z)

Но это не работает, потому что макросы не перегружаются количеством аргументов.

Не изменяя FOO2и FOO3, есть ли способ определить макросFOO(используя __VA_ARGS__или иначе ), чтобы получить тот же эффект отправки FOO(x,y)в FOO2и FOO(x,y,z)в FOO3?

168
задан AstroCB 2 November 2014 в 18:56
поделиться