为什么>?=
和=
不在VC++中工作?但它们在gcc /克++工作得很好,如:a>?=b
; 他们是正确的用法吗?
这些运营商是非标准的,在GCC中已弃用.它们甚至都不再支持G ++了.你应该使用std :: min和std :: max.请务必#define NOMINMAX以禁用与它们冲突的特定于窗口的宏.
因为这些是旧的GC++特定的最小和最大扩展.
从6.扩展到C++语言:
GNU编译器为C++语言提供了这些扩展(您还可以在C++程序中使用大多数C语言扩展).如果要编写检查这些功能是否可用的代码,可以使用与C程序相同的方式测试GNU编译器:检查预定义的宏
__GNUC__
.您还可以使用__GNUG__
专门测试GNU C++(请参阅GNU C预处理器中的 "预定义宏"一节).
6.1 C++ C++中的最小和最大运算符最小和最大运算符.
...
相反,你应该使用std::min
和std::max
.