我正在浏览其他程序员代码编写的一些代码,试图从中学习。我最终遇到了这段代码:
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; }
通过这样做,我已经可以假设代码应该做什么了。但搜索我还没有发现任何其他以这种方式实现它的例子。这只是糟糕的代码,甚至没有编译,或者这实际上是否适用于某些编译器(以及如何?)。
谢谢。
答案 0 :(得分:6)
它们不是标准C ++的一部分,而是GCC扩展。
G ++最小和最大运算符(
<?
和>?
)及其复合形式(<?=
)和>?=
)已弃用,现已从G ++中删除。应修改使用这些运算符的代码,以改为使用std::min
和std::max
。
请注意,正如标题所述,它们已被弃用。