你包含一个头文件的地方,#define
š max
宏.最好的解决方案是弄清楚它的定义位置,并在可能的情况下禁止定义它.或者,你可以#undef
这样:
#include#undef max
user52875.. 6
我发现一旦包含windows.h,您遇到的许多#define非常令人不安(不仅是max和min,而且如果我没记错的话,我还会遇到其他通用单词(如Rectangle)的问题)。因此,我养成了仅在绝对必要时才包含windows.h的习惯,而从来没有在头文件中包含它。这样可以减少针对特定平台的少量C ++文件的痛苦。
不幸的是,一些Boost库(我相信线程和asio)的标头中确实包含windows.h,但我仍然时常遇到这种愚蠢的问题。
对于其余导致问题的情况,我的解决方案是在包含头文件后#undef有问题的符号。
你包含一个头文件的地方,#define
š max
宏.最好的解决方案是弄清楚它的定义位置,并在可能的情况下禁止定义它.或者,你可以#undef
这样:
#include#undef max
我发现一旦包含windows.h,您遇到的许多#define非常令人不安(不仅是max和min,而且如果我没记错的话,我还会遇到其他通用单词(如Rectangle)的问题)。因此,我养成了仅在绝对必要时才包含windows.h的习惯,而从来没有在头文件中包含它。这样可以减少针对特定平台的少量C ++文件的痛苦。
不幸的是,一些Boost库(我相信线程和asio)的标头中确实包含windows.h,但我仍然时常遇到这种愚蠢的问题。
对于其余导致问题的情况,我的解决方案是在包含头文件后#undef有问题的符号。