Ciò che non è stato menzionato è che entrambi gli operatori &=
e |=
possono essere sovraccaricati. Pertanto, il codice che hai postato dipende dal tipo di nState (anche se è abbastanza chiaramente un int, quindi molto probabilmente questo non si applica qui). Sovraccarico &=
non sovraccaricare implicitamente &
, quindi in questo caso
x &= y might not be the same as x = x & y
Potrebbe anche dipendere da quello che è TOOL_TIPS_VISIBLE
.
struct s{
int x;
};
void operator &= (int& x, s y)
{
x = 0;
}
Ora ogni volta che fate:
s TOOL_TIPS_VISIBLE;
x &= TOOL_TIPS_VISIBLE;
x
diventerà 0
. Ancora una volta, altamente improbabile, ma buono a sapersi comunque.
Tutte le altre risposte probabilmente si applicano qui, ma vale la pena considerarle.
fonte
2011-11-04 08:25:42
La risposta potrebbe non essere così semplice (anche se è molto probabile che lo sia). Ho aggiunto alcune informazioni aggiuntive che potresti trovare utili. –