Sto cercando di convincere Doxygen a ignorare una relazione di ereditarietà quando si disegnano diagrammi di collaborazione.Come fare a Doxygen per ignorare la relazione di ereditarietà?
Diciamo che la mia definizione di classe si presenta così:
class Derived : public Base
{
int x;
int y;
int z;
}
Ora, quando corro Doxygen, io non voglio vedere Classe Base nel diagramma di collaborazione generato.
A prima vista, sembra che il modo più semplice per farlo sarebbe utilizzare la direttiva EXCLUDE_SYMBOLS
nel mio Doxyfile. In particolare:
EXCLUDE_SYMBOLS = Base
Tuttavia, ho trovato che questo non funziona: La classe di base mostra ancora nel mio schema di collaborazione per il derivato. Ho provato questo su Doxygen 1.8.6
e 1.8.11
e con permute diverse dei caratteri jolly di base (Base *, * come *, ecc.), Lo stesso comportamento. La classe base viene sempre visualizzata nel mio diagramma di collaborazione.
Per essere onesti, ho trovato 2 soluzioni alternative, ma entrambi implicano l'inserimento di dichiarazioni condizionali nel mio codice. Per completezza, io includo sia qui:
prima soluzione Metodo:
class Derived :
#ifndef DOXYGEN_SHOULD_SKIP_THIS
public Base
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
{
...
}
Poi assicurarsi che le seguenti due direttive sono impostati all'interno della Doxyfile:
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
ENABLE_PREPROCESSING = YES
seconda soluzione Metodo:
class Derived :
/// @cond DOXYGEN_IGNORE
public Base
/// @endcond
{
...
}
Per essere chiari, queste soluzioni alternative fanno sì che Doxygen ignori la relazione di ereditarietà, ma preferirei non inquinare inutilmente la mia base di codice, soprattutto se esiste un modo migliore/più pulito per raggiungere il mio obiettivo.
La mia domanda è - Perché non fa EXCLUDE_SYMBOLS
Doxygen ignora la mia classe Base quando disegna il diagramma di collaborazione?