Próbuję przekonać Doxygen do zignorowania relacji dziedziczenia podczas rysowania diagramów współpracy.Jak przekonać Doxygen do ignorowania relacji dziedziczenia?
Powiedzmy moja definicja klasy wygląda następująco:
class Derived : public Base
{
int x;
int y;
int z;
}
Teraz, kiedy biegnę Doxygen, nie chcę, aby zobaczyć klasy bazowej w wygenerowanym schematu współpracy.
Na pierwszy rzut oka wydaje się, że najczystszym sposobem na to byłoby użycie dyrektywy EXCLUDE_SYMBOLS
w moim pliku Doxy. W szczególności:
Jednak okazało się, że to nie działa: Klasa podstawowa nadal pojawia się na schemacie współpracy dla programu pochodnego. Próbowałem tego zarówno na Doxygen 1.8.6
i 1.8.11
i różnych permutacji podstawowych symboli wieloznacznych (Base *, * as *, itp.), Tego samego zachowania. Klasa podstawowa zawsze pojawia się na schemacie współpracy.
Aby być uczciwym, znalazłem 2 obejścia, ale oba wymagają umieszczenia instrukcji warunkowych w moim kodzie. Dla kompletności, będę obejmować zarówno tutaj:
pierwszej metody obejścia:
class Derived :
#ifndef DOXYGEN_SHOULD_SKIP_THIS
public Base
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
{
...
}
następnie upewnij się, że następujące dwie dyrektywy są ustawione wewnątrz Doxyfile:
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
ENABLE_PREPROCESSING = YES
Drugie obejście Metoda:
class Derived :
/// @cond DOXYGEN_IGNORE
public Base
/// @endcond
{
...
}
Dla jasności, te obejścia rzeczywiście powodują ignorowanie przez Doxygen związku dziedziczenia, ale wolę nie niepotrzebnie zanieczyszczać bazy kodu, zwłaszcza jeśli istnieje lepszy/czysty sposób na osiągnięcie mojego celu.
Moje pytanie brzmi - dlaczego EXCLUDE_SYMBOLS
nie powoduje, że Doxygen zignoruje moją klasę bazową podczas rysowania diagramu współpracy?