J'ai ce problème dans mon code:
bool CBase::isNumber()
{
return (id & MID_NUMBER);
}
bool CBase::isVar()
{
return (id & MID_VARIABLE);
}
bool CBase::isSymbol()
{
return (id & MID_SYMBOL);
}
Pour info: les cast ne cacheront pas l'avertissement par conception .
Quelque chose comme
return (id & MID_NUMBER) != 0;
devrait clairement indiquer "Je veux vérifier si cette valeur est nulle ou non" et laisser le compilateur être satisfait
Utilisez le !! idiome par exemple
bool CBase::isNumber()
{
return !!(id & MID_NUMBER);
}
Où est la déclaration d'identité et MID_NUMBER? Êtes-vous sûr qu'il ne s'agit pas de booléens de style windef plutôt que de booléens (en minuscules)? BOOL a été dans windef pendant des décennies typé comme un int; ils précèdent les booléens C++ appropriés et beaucoup de développeurs les utilisent encore.