Or even easier: use QFlags.
typedef enum InitializationState
{
INIT_NO_ONE = 0x00,
INIT_NO_TWO = 0x01,
INIT_NO_THREE = 0x02,
INIT_NO_FOUR = 0x04
};
Q_DECLARE_FLAGS( InitializationStates, InitializationState );
Q_DECLARE_OPERATORS_FOR_FLAGS( InitializationStates );
InitializationStates initState = INIT_NO_ONE; // NOTE: "InitializationStates", not "InitializationState"
initState |= INIT_NO_TWO;
if ( initState.testFlag( INIT_NO_TWO ) )
{
// INIT_NO_TWO is set.
}
typedef enum InitializationState
{
INIT_NO_ONE = 0x00,
INIT_NO_TWO = 0x01,
INIT_NO_THREE = 0x02,
INIT_NO_FOUR = 0x04
};
Q_DECLARE_FLAGS( InitializationStates, InitializationState );
Q_DECLARE_OPERATORS_FOR_FLAGS( InitializationStates );
InitializationStates initState = INIT_NO_ONE; // NOTE: "InitializationStates", not "InitializationState"
initState |= INIT_NO_TWO;
if ( initState.testFlag( INIT_NO_TWO ) )
{
// INIT_NO_TWO is set.
}
To copy to clipboard, switch view to plain text mode
Then you can AND, OR, and test bits using the QFlags operators with no need to cast anything.
Bookmarks