#define IS_void 1,1
#define EXP(x) x
#define VAR_SECOND(x,y,...) y
#define SEQ(x) VAR_SECOND x
#define IF_1(y) y
#define IF_0(y)
#define CAT_AUX(x,y) x ## y
#define CAT(x,y) CAT_AUX(x,y)
#define IF_VOID(type,macro) CAT( IF_, SEQ((IS_##type,0)) )(macro)
#include <cstdio>
int main(int argc,char *argv[])
{
IF_VOID(void,printf("void"));
IF_VOID(int,printf("int"));
return 0;
}
I2RlZmluZSBJU192b2lkIDEsMQojZGVmaW5lIEVYUCh4KSB4CiNkZWZpbmUgVkFSX1NFQ09ORCh4LHksLi4uKSB5CiNkZWZpbmUgU0VRKHgpIFZBUl9TRUNPTkQgeAojZGVmaW5lIElGXzEoeSkgeQojZGVmaW5lIElGXzAoeSkKI2RlZmluZSBDQVRfQVVYKHgseSkgeCAjIyB5CiNkZWZpbmUgQ0FUKHgseSkgQ0FUX0FVWCh4LHkpCiNkZWZpbmUgSUZfVk9JRCh0eXBlLG1hY3JvKSBDQVQoIElGXywgU0VRKChJU18jI3R5cGUsMCkpICkobWFjcm8pCgojaW5jbHVkZSA8Y3N0ZGlvPgoKaW50IG1haW4oaW50IGFyZ2MsY2hhciAqYXJndltdKQp7CiAgICBJRl9WT0lEKHZvaWQscHJpbnRmKCJ2b2lkIikpOwogICAgSUZfVk9JRChpbnQscHJpbnRmKCJpbnQiKSk7CiAgICByZXR1cm4gMDsKfQo=