Is there such a thing? It is the first time I encountered a practical need for it, but I don't see one listed in Stroustrup. I intend to write:
// Detect when exactly one of A,B is equal to five. return (A==5) ^^ (B==5);
But there is no ^^
operator. Can I use the bitwise ^
here and get the right answer (regardless of machine representation of true and false)? I never mix &
and &&
, or |
and ||
, so I hesitate to do that with ^
and ^^
.
I'd be more comfortable writing my own bool XOR(bool,bool)
function instead.
The !=
operator serves this purpose for bool
values.
For a true logical XOR operation, this will work:
if(!A != !B) { // code here }
Note the !
are there to convert the values to booleans and negate them, so that two unequal positive integers (each a true
) would evaluate to false
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With