【发布时间】:2011-07-28 16:19:43
【问题描述】:
我得到了以下实现来获取可变参数宏中的参数数量(目前限制为 16 个参数)。但是,对于 VS2010,无论传递多少参数,输出始终为 1。 With GCC,输出是正确的,让我得出结论,我一定错过了 MSVC (10) 的特定内容。
#define PP_NARGS(...) \
_xPP_NARGS_IMPL(__VA_ARGS__,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)
#define _xPP_NARGS_IMPL(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,N,...) N
int main(){
int i = PP_NARGS(A,V,C,X,Y,Z);
std::cout << i;
std::cin.get();
return 0;
}
所以,问题如标题所述,任何帮助将不胜感激。
【问题讨论】:
标签: c++ visual-studio-2010 visual-c++ c-preprocessor