JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.
If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.
If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.
| CodeSonar® 9.2p0 | CONFIDENTIAL | CodeSecure Inc |
該当する基底クラスは仮想基底クラスとして宣言されますが、一般的な菱形(ダイヤモンド)継承階層構造における仮想基底クラスではありません。
このワーニングクラスは、 Virtual Base Classの厳格なスーパーセットとなります。
| クラス名 | Virtual Base Class not In Diamond | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 日本語クラス名 | 菱形継承階層構造外の仮想基底クラス | |||||||||||||||
| クラス分類 | スタイル (style) | |||||||||||||||
| ニーモニック | LANG.TYPE.BCVNID | |||||||||||||||
| カテゴリー |
|
|||||||||||||||
| 対応言語 | C および C++ で利用可能です。 |
|||||||||||||||
| 有効/無効設定 | このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST
が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと
RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes WARNING_FILTER += allow class="Virtual Base Class not In Diamond" |
// BaseA BaseB BaseC BaseD // / \ | / \ / // / \ | / \ / // Int1 Int2 Int3 Int4 Int5 // \ / | \ / // \ / | \ / // DerivedX DerivedY DerivedZ class BaseA {}; class BaseB {}; class BaseC {}; class BaseD {}; class Int1: public virtual BaseA {}; // ok: within a diamond hierarchy class Int2: public virtual BaseA {}; // ok: within a diamond hierarchy class Int3: public virtual BaseB {}; // 'Virtual Base Class not In Diamond' warning issued here class Int4: public virtual BaseC {}; // ok: within a diamond hierarchy class Int5: public virtual BaseC, public virtual BaseD {}; // 'Virtual Base Class not In Diamond' warning issued here class DerivedX: public Int1, public Int2 {}; class DerivedY: public Int3 {}; class DerivedZ: public Int4, public Int5 {};
もしVirtual Base Class の検出を有効化した場合、 Virtual Base Class のワーニングがサンプル内の それぞれの中間クラス宣言箇所 (Int1, Int2, Int3, Int4, Int5) で発行されます。
設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。
To report problems with this documentation, please visit https://support.codesecure.com/.