I want to use variadic macros but I get errors
#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);
error C2065: 'signIn' : undeclared identifier
error C2275: 'std::string' : illegal use of this type as an expression
-
But SERVER_RE_2 works good.
SERVER_RE(signIn, std::string, std::string);
Aucun commentaire:
Enregistrer un commentaire