C/C++ コード プロジェクトで、中かっこを使用していないすべてのif/else文を検索したいと考えています。それらを見つけるためのコンパイラチェックまたはユーティリティはありますか?
主な問題は、いくつかのデバッグ マクロを再定義して、いくつかの条件でトレースの評価を回避したいことです (他の解決策はありますか?)。そして、中括弧なしの「if」ブロックで指摘されているように、「ダングリング・エルス問題」を回避するためにそれらを見つける必要があります。これにより、後続の「else if」がネストされます
コード片:
変更前:
DEBUG GET_DEBUG_DST(DEBUG_LEVEL_DEBUG).nospace() << DEBUG_PREFIX << __PRETTY_FUNCTION__
ここで、if
中括弧なしで を使用します。
DEBUG if (getDebugmode(DEBUG_LEVEL_DEBUG)) GET_DEBUG_DST(DEBUG_LEVEL_DEBUG).nospace() << DEBUG_PREFIX << __PRETTY_FUNCTION__
問題のあるコードの例:
if (my condition)
DEBUG << "hi there";
else
{some more code;}