Я хочу использовать вариативные макросы, но получаю ошибки
#define SERVER_RE_1(ServerFunction, Type1) \
{ \
Type1 arg1; \
getData(args, arg1); \
sv. ## ServerFunction ## (ssl, arg1); \
}
#define SERVER_RE_2(ServerFunction, Type1, Type2) \
{ \
Type1 arg1; \
Type2 arg2; \
getData(args, arg1, arg2); \
sv. ## ServerFunction ## (ssl, arg1, arg2); \
}
#define SERVER_RE_3(ServerFunction, Type1, Type2, Type3) \
{ \
Type1 arg1; \
Type2 arg2; \
Type3 arg3; \
getData(args, arg1, arg2, arg3); \
sv. ## ServerFunction ## (ssl, arg1, arg2, arg3); \
}
#define GET_MACRO(_1,_2,_3,_4,NAME,...) NAME
#define SERVER_RE(...) GET_MACRO(__VA_ARGS__, SERVER_RE_3, SERVER_RE_2, SERVER_RE_1)(__VA_ARGS__)
-
SERVER_RE(signIn, std::string, std::string);
ошибка C2065: 'signIn': необъявленный идентификатор
ошибка C2275: 'std::string': незаконное использование этого типа в качестве выражения
-
Но SERVER_RE_2 работает хорошо.
SERVER_RE2(signIn, std::string, std::string);
signIn
при использовании первого образца? - person πάντα ῥεῖ   schedule 31.05.2015