>?= b是什么意思?

时间:2013-11-30 19:51:01

标签: c++ operators

我找到了以下代码并且不明白它的含义:

res>?=m[2];

这是我找到它的代码和它的一些上下文。

vector<int> m(3);
int s = 0;
... do stuff with m ...
res>?=m[2];
return res;

2 个答案:

答案 0 :(得分:37)

这是旧的GCC扩展。

相当于a >?= ba = max(a,b);

您可以查看Minimum and Maximum Operators in C++

  

让操作员返回“最小”或者非常方便   两个论点的“最大值”。在GNU C ++中(但不是在GNU C中),

     

a <? b

     

是最小值,返回数值a和b中较小的一个;

     

a&gt;? B'/强>

     

是最大值,返回数值a和b中较大的一个。

On a side note: -

  

这些运算符是非标准运算符,deprecated in GCC。您应该使用 std::min std::max

答案 1 :(得分:7)

这当然不是标准的C ++。我可以猜测这是赋值+三元运算符的快捷方式,simmilary是赋值+二元运算符,如operator+=和其他运算符:

 res = (res > m[2]) ? res : m[2];

您可以在此处阅读相关内容:Extensions to the C++ Language

a <? b
is the minimum, returning the smaller of the numeric values a and b;
a >? b
is the maximum, returning the larger of the numeric values a and b.