Ich bin auf das folgende Code-Snippet gestoßen
if( 0 != ( x ^ 0x1 ) )
encode( x, m );
Was heißt x ^ 0x1das Ist das eine Standardtechnik?
0 != (x ^ 1)→ xoder beide Seiten um 1 → (0 ^ 1) != (x ^ 1 ^ 1)→ vereinfachen →1 != x
if (1 != x)schwer es ist zu schreiben.
typeof xnicht angegeben ist - daher wissen wir nicht, dass dies eine Ganzzahl in diesem C ++ - Tag-Problem ist. Sicher, wenn dies C oder xeine ganze Zahl ist, ist die Antwort einfach, aber das ist nicht gegeben und die Möglichkeit einer Überladung operator ^besteht.