Нет такой вещи как условное (короткое замыкание) XOR.Условные операторы имеют смысл только тогда, когда есть способ окончательно определить окончательный результат, взглянув только на первый аргумент.XOR (и сложение) всегда требуют двух аргументов, поэтому после первого аргумента нет способа замкнуть накоротко.
Если вы знаете A = true, то (A XOR B) =! B.
Если вы знаете A = false, то (A XOR B) = B.
В обоих случаях, если вы знаете A, но не B, то вы не знаете достаточно, чтобы знать (A XOR B),Вы всегда должны изучать значения как A, так и B, чтобы рассчитать ответ.Буквально нет варианта использования, когда вы можете разрешить XOR без обоих значений.
Имейте в виду, XOR по определению имеет четыре случая:
false xor true = true
true xor false = true
true xor true = false
false xor false = false
Опять же, мы надеемся,выше этого знания первого значения никогда не бывает достаточно, чтобы получить ответ без знания второго значения.Однако в своем вопросе вы пропустили первый случай.Если вы вместо этого хотели
false op true = false (or DontCare)
true op false = true
true op true = false
false op false = false
, то вы действительно можете получить это с помощью короткого замыкания:
A && !B
Но это не XOR.