тег, потому что я думал, что это не имеет значения для препроцессора. Кажется, это так, хотя.
учил следующую реализацию, чтобы получить число аргументов в макросе с переменным числом аргументов (в настоящее время ограничено 16 аргументами). Однако для VS2010 выход всегда1
независимо от того, сколько аргументов передано.С 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;
}
Таким образом, вопрос, как говорится в названии, любая помощь будет оценена.