Я когда-то замеченный - проводной оператор в C++, который присваивает значение, если больше, чем..
это была комбинация ?
, <
и =
например, позвольте x = значение, если значение больше, чем x
Я не имею в виду x=(x<value)x:value
Это был своего рода x<?=value
Но я не могу помнить это точно и не могу найти его онлайн... Кто-то может напомнить мне о нем?
Спасибо,
gcc есть - как минимум в версии 3.3.6! - специфичное для gcc языковое расширение, предоставляющее специализированные операторы для реализации min и max. Возможно, это то, о чем вы думаете?
Операторы минимума и максимума в C ++
У меня нет под рукой gcc, чтобы проверить его, но он может иметь форму обновления.
Не существует оператора, который присваивает переменные на основе их относительных значений.
Однако существует оператор ?::
x = value > x ? value : x;
Если прочитать его вслух слева направо, то он имеет смысл.
это более удобная версия оператора if, который используется для присваивания
int x = (some bool) ? trueval : falseval;
это примерно то, что это означает, когда вычисляется bool, он получает либо истинное значение, либо ложное значение в зависимости от результата, это проще, чем сказать
int x;
if (someval)
x = trueval;
else
x = falseval;
x = x < value ? 0 : 1;
Эта функция устанавливает x в 0, если x < значения, 1 в противном случае.
Вы думаете о троичном операторе?
result = a > b ? x : y;
Я подозреваю, что вы думаете о расширении gcc 1 , которое позволяет вам опускать средний операнд для условного оператора, поэтому (например):
a = b ? b : c;
можно записать как:
a = b ?: c;
1 Несмотря на "2.95.3" в URL-адресе, я не знаю более новой версии связанной страницы. Если кто-то есть, пожалуйста, не стесняйтесь указать на это (или отредактировать).