#include <stdio.h>
#define def_add(T) \
T add_##T(T a, T b)\
{\
return a + b;\
}
#define add(T) add_##T
def_add(int);
def_add(float);
int main(void)
{
printf("%d%.0f\n", add
(int)(2, 2), add
(float)(5.
, -3.
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIGRlZl9hZGQoVCkgXApUIGFkZF8jI1QoVCBhLCBUIGIpXAp7XAogICAgcmV0dXJuIGEgKyBiO1wKfQoKI2RlZmluZSBhZGQoVCkgYWRkXyMjVAoKZGVmX2FkZChpbnQpOwpkZWZfYWRkKGZsb2F0KTsKCmludCBtYWluKHZvaWQpCnsKICAgIHByaW50ZigiJWQlLjBmXG4iLCBhZGQoaW50KSgyLCAyKSwgYWRkKGZsb2F0KSg1LiwgLTMuKSk7CiAgICByZXR1cm4gMDsKfQ==