a>?=b 是什么意思?

What does a>?=b mean?

本文关键字:是什么 意思 gt      更新时间:2023-10-16

我发现了下面的代码,不明白它的意思:

res>?=m[2];

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

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

它是一个旧的GCC扩展。

a >?= b的等价物是a = max(a,b);

您可以查看C++中的最小和最大运算符

让操作员返回"最小值"或两个参数的"最大值"。在GNU C++中(但不在GNU C中),

a <? b

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

a>?b

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

附带说明:-

这些运算符是非标准的,在GCC中不推荐使用。您应该使用std::minstd::max

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

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

你可以在这里阅读相关内容:C++语言的扩展:

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.