C / C ++宏中的逗号
假设我们有这样的宏
#define FOO(type,name) type name
我们可以使用哪个
FOO(int, int_var);
但并不总是那么简单:
FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2
我们当然可以这样做:
typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK
这不是非常符合人体工程学的。必须处理类型不兼容的问题。知道如何用宏来解决这个问题吗?
冉冉说
慕哥9229398