Что означает оператор>? =? - PullRequest
39 голосов
/ 05 марта 2011

Просматривая эту библиотеку C ++ BigInt и обнаружил файл BigInt.cpp .Вверху есть комментарий вверху о совместимости:

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

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

Ответы [ 3 ]

47 голосов
/ 05 марта 2011

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

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

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

14 голосов
/ 05 марта 2011

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

3 голосов
/ 05 марта 2011

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

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

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

...