Consultez le code suivant (simplifié):Utilise enum pour les opérations sur les bits entiers en C++ fiable/sécurisé?
enum eTestMode
{
TM_BASIC = 1, // 1 << 0
TM_ADV_1 = 1 << 1,
TM_ADV_2 = 1 << 2
};
...
int m_iTestMode; // a "bit field"
bool isSet(eTestMode tsm)
{
return ((m_iTestMode & tsm) == tsm);
}
void setTestMode(eTestMode tsm)
{
m_iTestMode |= tsm;
}
Est-ce fiable, sûr et/ou de bonnes pratiques? Ou y a-t-il une meilleure façon de réaliser ce que je veux faire en dehors de l'utilisation de const ints au lieu d'enum? Je préférerais vraiment des énumérations, mais la fiabilité du code est plus importante que la lisibilité.