我对在C++块(比方说main)中定义自己的语言很感兴趣,为此,我需要使用预处理器及其指令,我的问题依赖于以下规则:因此,当我使用自己语言的函数时,我可以很方便地解析下面的语句:对于不同的两个函数调用,假设
insertINTO(variable_name) and valuePARSE(arg_list)
X = x and VA_ARGS = __VA_ARGS__F(1, 2, 3)对于这两个宏,预期的输出都是X = 1 and VA_ARGS = 2, 3,这就是我使用GCC得到的结果,但是,MSVC将其扩展为:X = 1, 2, 3 and VA_ARGS =
也就是说,__VA_ARGS__作为单个参数展开,而不是分解为多个参数。