C/C++ 解析の 2 つの解析モード (Fuzzy/Strict)

Understand の C/C++ 言語の解析では、Fuzzy と Strict の 2 つの解析モードを選択できます。

  • Fuzzy
    従来から存在する解析モードです。
  • Strict
    C/C++ をより厳密に解析するためのモードとして、Understand 3.0 で搭載されました。

Fuzzy と Strict には、以下のような特長 (違い) があります。

Fuzzy 解析

解析タスクについての、環境知識/スキルが十分ではない場合には、より容易に利用できる Fuzzy 解析をお勧めします。

  • ファイル構成、パス/マクロ設定等の厳格な設定をおこなわなくても、ある程度の解析結果が得られる
  • オーバーロード、C++テンプレートの解析が不十分 (オーバーロードの区別や、テンプレートの特殊化の区別ができない)
  • Strict 解析より解析速度が高速
  • コンパイラが選択可能

Strict 解析

解析タスクについての、十分な環境知識/スキルを持つ要員が確保でき、より厳格な解析結果を必要とする場合には、Strict 解析をお勧めします。

  • 実際のコンパイル環境に近い厳格な設定をおこなうことで、Fuzzy 解析より精度の高い結果が得られる
  • オーバーロード、C++ テンプレートの解析に対応 (オーバーロードの区別や、テンプレートの特殊化の区別)
  • Objective-C/C++, C++11, C++14 の解析に対応
  • Fuzzy 解析より解析速度は遅い
  • ターゲットのアーキテクチャ、OS、言語規格が指定可能


C/C++ の Fuzzy, Strict 解析モードは、下記の箇所で設定し、変更できます。

  1. メインメニュー[プロジェクト]-[プロジェクトの設定]-[言語]を選択します。
  2. 右画面の言語選択画面の C/C++ の右欄の “Fuzzy”, “Strict” のオプションボタンで選択します。

Strict 解析では、十分なインクルードパス/マクロ設定がおこなえていない場合には、解析情報が生成されず、
未解決のエンティティが多数発生し、Fuzzy 解析以下の解析結果となる場合もあります。

また、Strict 解析ではより厳格な解析をおこなうため、Visual Studio や gcc などのコンパイラではエラーとはならない構文であっても、エラーとなる場合があります。ご注意ください。

一方、Fuzzy 解析は、設定が不十分であっても、ある程度の解析結果を得ることが可能です。

状況に応じて、Fuzzy, Strict の解析モードを使い分けてご利用ください。

タイトルとURLをコピーしました
Close Bitnami banner
Bitnami