我想让我的代码变小。我认为一些宏可以使我的代码变小。
我想制作包含对象声明的宏
有切换案例
case SIGN_UP:
{
std::string userName;
std::string password
getArgs(args, userName, password);
sv.signUp(userName, password);
}
break;
case SIGN_IN:
{
std::string userName;
std::string password
getArgs(args, userName, password);
sv.signIn(userName, password);
}
break;
case SOMETHING:
{
std::string s;
int i;
getArgs(args, s, i);
sv.something(s, i);
}
break;
我想制作宏来制作像
这样的代码 case SIGN_UP:
GET_ARGS(args, std::string userName, std::string password);
sv.signUp(userName, password);
break;
case SIGN_IN:
GET_ARGS(args, std::string userName, std::string password);
sv.signIn(userName, password);
break;
case SOMETHING:
GET_ARGS(args, std::string s, int i);
sv.something(s, i);
break;
有可能吗?
答案 0 :(得分:0)
您可以使用以下宏:
#define GET_ARGS(args, firstType, firstName, secondType, secondName) \
firstType firstName;\
secondType secondName;\
getArgs(args, firstName, secondName);
不完全像你问的那样 - 需要更多的写作:
GET_ARGS(args, std::string, name, std::string, password);
正如您所看到的,与您要求的相比,您必须使用更多逗号。至于我,它并没有太大的区别。