为什么&gt;?=和<! - ?=在VC ++中不起作用? - >

时间:2009-08-05 15:48:22

标签: c++

为什么>?=<?=在VC ++中不起作用? 但它们在gcc / g ++中运行良好 喜欢:a>?=b; 他们是正确的用法吗?

2 个答案:

答案 0 :(得分:13)

这些运营商是非标准运营商,在GCC中已弃用。它们甚至都不再支持G ++了。你应该使用std :: min和std :: max。请务必将#NfINMAX定义为与他们发生冲突的disable the window-specific macros

答案 1 :(得分:7)

因为这些是旧GC++-specific extensions的最小值和最大值。

来自6. Extensions to the C++ Language

  

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

相反,您应该使用std::minstd::max