读书人

宏定义中元素类型的有关问题

发布时间: 2012-02-29 16:44:10 作者: rapoo

宏定义中元素类型的问题
有如下宏:
#define MULTI_FUNCTIONAL(exp, test, result) { \
const double expVal=(exp); \
const double testVal=(test); \
const double resultVal=(result); \

if (resultVal==testVal) ... ... (省略)

结果发现exp, test, result的值不仅仅可以是double类型的,也可以是char, int各种类型的值。怎么定义这里的expVal, testVal和resultVal呢?

请指教一下,谢谢!

[解决办法]
如果是gcc,可以使用typeof(exp) const expVal = (exp);
如果不是gcc,可以使用宏转调inline的template函数自动推导类型。
不要在“宏”上吊死。

读书人网 >C++

热点推荐