解决宏定义与函数名冲突的问题

毕竟典型的一个问题是里面的max和min的宏定义与
std::numeric_limits<std::streamsize>::max()和
std::numeric_limits<std::streamsize>::min()

两个函数定义相互冲突。
通常的情况是,如果包含了头文件windows.h,那么编译器会率先把它当成宏,从而报错,
解决的办法有这么几个:
方法一:
用括号把调用函数的地方括起来,这个是用的比较多的方法,也是解决的比较好的方法
例如:
象这样用函数
(std::numeric_limits<std::streamsize>::max)()
方法二:
就是不包含宏定义的头文件
方法三:
取消掉对宏的定义
#undef max

你可能感兴趣的:(编程技巧)