当前位置:  开发笔记 > 开发工具 > 正文

宏"max"需要2个参数,但只有1个参数

如何解决《宏"max"需要2个参数,但只有1个参数》经验,为你挑选了2个好方法。

你包含一个头文件的地方,#defineš max宏.最好的解决方案是弄清楚它的定义位置,并在可能的情况下禁止定义它.或者,你可以#undef这样:

#include 
#undef max


user52875.. 6

我发现一旦包含windows.h,您遇到的许多#define非常令人不安(不仅是max和min,而且如果我没记错的话,我还会遇到其他通用单词(如Rectangle)的问题)。因此,我养成了仅在绝对必要时才包含windows.h的习惯,而从来没有在头文件中包含它。这样可以减少针对特定平台的少量C ++文件的痛苦。

不幸的是,一些Boost库(我相信线程和asio)的标头中确实包含windows.h,但我仍然时常遇到这种愚蠢的问题。

对于其余导致问题的情况,我的解决方案是在包含头文件后#undef有问题的符号。



1> Adam Rosenfi..:

你包含一个头文件的地方,#defineš max宏.最好的解决方案是弄清楚它的定义位置,并在可能的情况下禁止定义它.或者,你可以#undef这样:

#include 
#undef max



2> user52875..:

我发现一旦包含windows.h,您遇到的许多#define非常令人不安(不仅是max和min,而且如果我没记错的话,我还会遇到其他通用单词(如Rectangle)的问题)。因此,我养成了仅在绝对必要时才包含windows.h的习惯,而从来没有在头文件中包含它。这样可以减少针对特定平台的少量C ++文件的痛苦。

不幸的是,一些Boost库(我相信线程和asio)的标头中确实包含windows.h,但我仍然时常遇到这种愚蠢的问题。

对于其余导致问题的情况,我的解决方案是在包含头文件后#undef有问题的符号。

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有