我尝试获取发送到可变参数宏的第一个实际参数。这是我尝试过的,但在VS2010中不起作用:#defineFIRST_ARG(N,...)N#defineMY_MACRO(...)decltype(FIRST_ARG(__VA_ARGS__))当我查看预处理器输出时,我看到FIRST_ARG返回发送到MY_MACRO的整个参数列表...另一方面,当我尝试:FIRST_ARG(1,2,3)它按预期扩展为1。这似乎与臭名昭著的两级连接宏所解决的问题在某种程度上相反。我知道“宏参数在插入宏主体之前已完全展开”,但这似乎对我没有帮助,因为我不明白这在......和__VA_ARGS__的上下文