我想知道为什么这个宏扩展如此之大。
#define CONCAT_IMPL(A, B) A##B
#define CONCAT(A, B) CONCAT_IMPL(A, B)
#define EAT(...)
#define TEST(ARG) EXPANDED, ARG) EAT(
#define GET_LAST(A, B) B
int result = 0;
result = GET_LAST(CONCAT(TEST, (1)), 2); // result is 2
result = GET_LAST(TEST(1), 2); // result is 2
result = GET_LAST(EXPANDED, 1) EAT(, 2); // result is 1
我想要 GET_LAST(CONCAT(TEST, (1)), 2); 评价值 1。
如果您能告诉我是否可以在 MSVC 上使用它或者是否缺少某些东西,我将不胜感激。