私のコードにはこの問題があります:
bool CBase::isNumber()
{
return (id & MID_NUMBER);
}
bool CBase::isVar()
{
return (id & MID_VARIABLE);
}
bool CBase::isSymbol()
{
return (id & MID_SYMBOL);
}
参考:キャストは警告を非表示にしません 設計上 。
何かのようなもの
return (id & MID_NUMBER) != 0;
「この値がゼロかどうかを確認したい」と明確に述べ、コンパイラに満足させます
使用 !!イディオム例
bool CBase::isNumber()
{
return !!(id & MID_NUMBER);
}
IdとMID_NUMBERの宣言はどこにありますか? (小文字の)ブール型ではなく、ウィンデフスタイルのブール型ではありませんか? BOOLは、intとしてtypedefされた何十年もwindefにあります。それらは適切なC++ブールよりも前のものであり、多くの開発者がまだそれらを使用しています。