Open toughengineer opened 3 years ago
Смысл && и || в том, что, зная левое значение, возможно не стоит вычислять правое, а сразу получить результат. В операции XOR это математически невозможно.
Неплохо бы еще иметь диграф для ^^
Правда, он не попадет под общий стиль:
& - bitand
&& - and
| - bitor
|| - or
^ - xor
^^ - ?????????
Варианты: bool_xor
, xor_bool
, xorxor
, bxor
;
либо несвязанное с xor название: ex_or
(exclusive or).
int i = 42;
void *ptr = nullptr;
const auto uwu = i bool_xor ptr;
Мне нравится ex_or
или bool_xor
.
&&
, ||
- это не "диграфы". Это основное написание операторов и оно не имеет альтернативного в виде диграфов.
Есть же !=
. Чем не ^^
?
Сабж.
Предлагаю символ
^^
по модели остальных оперторов:&
и&&
,|
и||
.Для булевых аргументов в качестве исключающего ИЛИ работает
!=
, например:Но всё равно в этом случае читаемость ниже плинтуса и парсинг физического смысла такого выражения будет не мгновенным.
Для типов кроме булева всё ещё грустнее, потому что
!=
в отличие от логических операторов не делает контекстного преобразования в булев тип. Например, такое:С логическим исключающим ИЛИ имхо выглядит намного лучше: