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

Что означает оператор?? =?

Просматривая эту библиотеку С++ BigInt и нашел файл BigInt.cpp. В верхней части находится комментарий сверху о совместимости:

Этот класс был написан для компилятора g++ и использует некоторые расширения g++ (например, "long double" и " > ? =" ).

Что делает оператор >?=? Я не могу найти ссылку на него где-нибудь еще.

4b9b3361

Ответ 1

Это расширение GCC, которое было удалено в GCC версии 4.2 и более поздних.

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

Существует также очень похожий оператор a <?= b, который означает то же, что и a = min(a, b);.

Ответ 2

Эта страница описывает, что >? - это оператор "максимум", который возвращает самый большой из двух его числовых аргументов. Я предполагаю, что >?= объединяет это с назначением, предположительно, назначая левому операнду, если правое значение больше.

Ответ 3

См. расширение C: <? и > ? Операторы

Это оператор max-then-assign: возьмите большую левую и правую стороны и залейте его обратно в левую сторону.

Он удален из g++ и должен быть заменен на max (или min для <?=)