I\'m trying to check for a bit in a flags value of which flags can be |\'d together. So far i\'m using this
if ((someclass.flags | CONST_SOMEFLAG) == somecl
What you want to know is, if the flag bit is set among all the other possibly set or unset bits. The canonical way to do this, is to bitwise and (&) test for being nonzero
if( someclass.flags & CONST_SOMEFLAG )
Use bitwise OR to set the flags, use bitwise AND to test, like this:
if (someclass.flags & CONST_SOMEFLAG) ...
That will work fine, but it's more conventional to use &:
if (flags & MASK) . . .
This is likely because on some processors testing a register for != 0 is faster than testing for equality with a stored value.