在C++中,"<?"和">?"是什么意思?

5

我正在查看另一位程序员编写的代码,以便学习。最终我遇到了这段代码:

inline const FLOAT minx() const { return p1.x <? p2.x; }
inline const FLOAT maxx() const { return p1.x >? p2.x; }

这段代码没有编译成功,我通过更改代码使其正常工作:

inline const FLOAT minx() const { return p1.x < p2.x ? p1.x : p2.x; }
inline const FLOAT minx() const { return p1.x > p2.x ? p1.x : p2.x; }

通过这样做,我已经可以猜出代码的作用。但是在搜索时,我没有找到任何其他采用这种方式实现的示例。这只是不好的代码,甚至无法编译,还是在某些编译器上确实可以工作(如果是这样的话,它是如何工作的?)。谢谢。

1
它们是GCC扩展。 - MikeCAT
1个回答

6
它们不是标准C ++的一部分,而是GCC扩展。
来自弃用功能
G ++最小值和最大值运算符(<?>?)及其复合形式(<?=)和>?=)已被弃用并从G ++中删除。使用这些运算符的代码应修改为使用std :: minstd :: max
请注意,它们如标题所说,已被弃用。

自2005年4月起,GCC 4.0开始弃用该功能。 - ColdCat
谢谢。根据您提供的链接,现在应该使用std::min和std::max。再次感谢您的帮助。 - Cpt Pugsy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接