为什么>?=
和<?=
在VC ++中不起作用?
但它们在gcc / g ++中运行良好
喜欢:a>?=b
;
他们是正确的用法吗?
答案 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::min
和std::max
。