我正在重构一些使用自己的类型处理系统的旧代码,该系统为用作参数的类型提供了一个特殊的宏:
x = function(TYPE(double), y);
重构之后,上面写成
x = function<double>(y);
有没有办法(使用宏或重载函数)来保持旧样式也能正常工作,提供向后兼容性?我试过这样的事情:
#define TYPE(x) (x)
#define function(x, y) function<x>(y)
希望宏仅在实际参数数量与其定义匹配时使用,但这会导致编译错误。