2016-05-19 19 views
7

私は、コラボレーション図を描画するときにDoxygenに継承関係を無視させようとしています。Doxygenに継承関係を無視させる方法は?

のは、私のクラス定義は次のようになりましょう:私はDoxygenのを実行すると

class Derived : public Base 
{ 
    int x; 
    int y; 
    int z; 
} 

、私は、生成されたコラボレーション図で基本クラスを参照してくださいする必要はありません。

一見すると、これを行う最もクリーンな方法は、私のDoxyfileにEXCLUDE_SYMBOLS指示文を使用することです。具体的に:派生の基底クラスはまだ私のコラボレーション図に表示:

EXCLUDE_SYMBOLS = Base 

しかし、私はこれが動作しないことがわかってきました。私はこれをDoxygen 1.8.6との両方で試してみましたが、ベースワイルドカード(Base *、* as *など)の異なる順列でも同じ動作をしました。 Baseクラスは常に私のコラボレーション図に表示されます。

2つの回避策が見つかりましたが、どちらも条件文を自分のコードに入れています。完全を期すために、私はここの両方が含まれます:

最初の回避策方法:その後

class Derived : 
#ifndef DOXYGEN_SHOULD_SKIP_THIS 
    public Base 
#endif /* DOXYGEN_SHOULD_SKIP_THIS */ 
{ 
    ... 
} 

次の二つのディレクティブがDoxyfileというの内側に設定されていることを確認してください。

PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS 
ENABLE_PREPROCESSING = YES 

セカンド回避策を方法:

class Derived : 
/// @cond DOXYGEN_IGNORE 
     public Base 
/// @endcond 
{ 
    ... 
} 

これらの回避策は実際にDoxygenが継承関係を無視するようにしますが、私のコードベースを不必要に汚染しないようにしたいと思います。

私の質問は - なぜではありませんEXCLUDE_SYMBOLS Doxygenはコラボレーション図を描画するときにBaseクラスを無視しますか?

答えて

0

私が間違っていない場合、EXCLUDE_SYMBOLSは除外されたシンボルのドキュメントをDoxygenが生成するのを防ぎますが、それらを隠すことはありません。これはDoxygenがBaseクラスのドキュメントを生成しないことを意味しますが、Derivedの基本クラスとしても言います。Derivedが外部ライブラリから提供されたクラスから継承された場合と同様に、ライブラリによって提供されるクラスの名前はコラボレーション図に表示されます。

関連する問題