Подтвердить что ты не робот

Что означает a>? = B?

Я нашел код ниже и не понимаю, что это значит:

res>?=m[2];

Вот код, где я его нашел, и некоторый контекст для него.

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

Ответ 1

Это старое расширение GCC.

Эквивалент a >?= b равен a = max(a,b);

Вы можете проверить Минимальные и максимальные операторы на С++

Очень удобно иметь операторы, которые возвращают "минимум" или "максимум" двух аргументов. В GNU С++ (но не в GNU C),

a <? b

- это минимум, возвращающий меньшие числовые значения a и b;

a > ? б

- максимальное значение, возвращающее большее число числовых значений a и b.

На боковой заметке: -

Эти операторы нестандартны и устарели в GCC. Вы должны использовать std:: min и std:: max.

Ответ 2

Это, конечно, не стандартный С++. Я могу догадаться, что это ярлык для назначения + тройной оператор, аналогичный присваиванию + двоичным операторам, например operator+= и другим:

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

Вы можете прочитать здесь: Расширения языка С++:

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.