Why does the following minimal example not work?
static inline int test_1(int x) { return x; }
#define TEST(a, ...) test_##a(__VA_ARGS__)
#define ONE 1
void temp() {
TEST(1, 5); // OK
TEST(ONE, 5); // error: use of undeclared identifier 'test_ONE'
}
From my understanding, macros inside macros should work as long as they are not recursive.