读书人

如其宏名和函数名撞车

发布时间: 2012-10-06 17:34:01 作者: rapoo

如果宏名和函数名撞车

例如,<windef.h>中定义了max()和min()宏,而<limits>中定义了std::numeric_limits<type>::max()以及相应的min(),如果代码里面想调用后者,但编译的时候宏的展开是最先的,因而就会产生冲突,要避免冲突,得这么调用(std::numeric_limits<some type>::max)(),也就是加一层括号,把max和()切割开,就避免的宏的展开。

读书人网 >编程

热点推荐