RAC RAC - 2 months ago 20
C++ Question

Logical XOR operator in C++?

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.

Answer

The != operator serves this purpose for bool values.