Ich versuche, Doxygen zu veranlassen, eine Vererbungsbeziehung beim Zeichnen von Kollaborationsdiagrammen zu ignorieren.Wie bekomme ich Doxygen, um die Vererbungsbeziehung zu ignorieren?
sagen Lassen Sie meine Klassendefinition wie folgt aussieht:
class Derived : public Base
{
int x;
int y;
int z;
}
Nun, wenn ich laufen Doxygen, ich habe keine Basisklasse in der generierten Kollaborationsdiagramm sehen wollen.
Auf den ersten Blick scheint es am saubersten zu sein, die Anweisung EXCLUDE_SYMBOLS
in meinem Doxyfile zu verwenden. Im Einzelnen:
EXCLUDE_SYMBOLS = Base
Allerdings habe ich festgestellt, dass dies nicht funktioniert: Die Basisklasse immer noch in meinem Kollaborationsdiagramm zeigt sich für Abgeleitet. Ich habe dies sowohl auf Doxygen 1.8.6
und 1.8.11
und mit verschiedenen Permutationen von Base Wildcards (Base *, * as *, etc), das gleiche Verhalten versucht. Die Basisklasse wird immer in meinem Kollaborationsdiagramm angezeigt.
Um fair zu sein, habe ich 2 Problemumgehungen gefunden, aber beide beinhalten bedingte Anweisungen in meinen Code. Der Vollständigkeit halber werde ich beide hier sind:
Erste Abhilfe Methode:
class Derived :
#ifndef DOXYGEN_SHOULD_SKIP_THIS
public Base
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
{
...
}
anschließend sicher, dass die folgenden beiden Richtlinien innerhalb des Doxyfile festgelegt sind:
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
ENABLE_PREPROCESSING = YES
zweite Problemumgehung Methode:
class Derived :
/// @cond DOXYGEN_IGNORE
public Base
/// @endcond
{
...
}
Um es klar zu sagen, diese Problemumgehungen machen Doxygen tatsächlich dazu, die Vererbungsbeziehung zu ignorieren, aber ich würde es vorziehen, meine Codebasis nicht unnötig zu verschmutzen, besonders wenn es einen besseren/saubereren Weg gibt, mein Ziel zu erreichen.
Meine Frage ist - Warum nicht EXCLUDE_SYMBOLS
Doxygen meine Basisklasse zu ignorieren, wenn es das Kollaborationsdiagramm zeichnet?