为什么>?=和<?=在VC++中不起作用?

3 c++

为什么>?=<?=不在VC++中工作?但它们在gcc /克++工作得很好,如:a>?=b; 他们是正确的用法吗?

bdo*_*lan 13

这些运营商是非标准的,在GCC中已弃用.它们甚至都不再支持G ++了.你应该使用std :: min和std :: max.请务必#define NOMINMAX以禁用与它们冲突的特定于窗口的宏.


lav*_*nio 7

因为这些是旧的GC++特定的最小和最大扩展.

6.扩展到C++语言:

GNU编译器为C++语言提供了这些扩展(您还可以在C++程序中使用大多数C语言扩展).如果要编写检查这些功能是否可用的代码,可以使用与C程序相同的方式测试GNU编译器:检查预定义的宏__GNUC__.您还可以使用__GNUG__专门测试GNU C++(请参阅GNU C预处理器 "预定义宏"一节).

  • 6.1 C++ C++中的最小和最大运算符最小和最大运算符.
  • ...

相反,你应该使用std::minstd::max.