#define SECOND(a, b, ...) b #define IS_PROBE(...) SECOND(__VA_ARGS__, 0) #define PROBE() ~, 1 (Nothing): IS_PROBE() 0: IS_PROBE(0) 1: IS_PROBE(1) Something: IS_PROBE(Something) PROBE: IS_PROBE(PROBE())