[doxygen] Globales enum Dokumentieren
-
Hi Leute,
ich Dokumentiere seit einiger Zeit meine Quelltexte mit doxygen aber erst jetzt ich mir aufgefallen das globale Enum's nicht in dem generiertem HTML-Dokument ist.
Folgenderweise ist meine Header-Datei aufgebaut:
//Forwärtsdeklaration enum RecordState; //! Datensatz des Einkaufspreises /*! Diese Klasse spiegelt den Datensatz eines Einkaufspreises wieder. In dieser Klasse habe ich alle Möglichkeiten um diesen Datensatz zu modifizieren, löschen und erstellen. */ class Record { public: //! Der Konstruktor der Klasse Record(); private: //! Status des Datensatzes /*! Diese Eigenschaft beinhaltet den Status dieses Datensatzes. Also ob es geändert, neu erstellt oder gelöscht wurde. \sa RecordState, setRecordState() und recordState() */ RecordState m_state; }; //! Status des Datensatzes /*! Das Enum enthält die mögliche Zustände des Datensatzes. */ enum RecordState { rsNewRecord, /*!< Neuer Datensatz */ rsEditRecord, /*!< Bearbeiteter Datensatz */ rsDeleteRecord, /*!< Gelöschter Datensatz */ rsNativeRecord /*!< Ursprünglicher Datensatz */ };
Das enum ist nirgendwo in der Dokumentation zu finden. Scheinbar scheint doxygen nur Klassen zu dokumentieren und alles außerhalb der Klasse ignoriert er.
Ich hoffe das es doch geht und ich irgendwo einen Fehler habe.
Würde mich sehr freuen wenn einer mir sagen könnte ob und wie es geht.
Liebe Grüße
Rudi G
-
Warum machst du das Enum nicht einfach in die Record-Klasse? Offensichtlich gehört es ja zu dieser.
-
Prokkramierer schrieb:
Warum machst du das Enum nicht einfach in die Record-Klasse? Offensichtlich gehört es ja zu dieser.
Aber wenn ich von außerhalb der Klasse eine Öffentliche Methode dieser Klasse aufrufe und der einen Wert eines Enums übergeben muss, kann ich das doch nicht machen wenn der Enum in der Klasse definiert ist, oder muss ich dann Klassenamen::Enum::typ übergeben?
Gruß
Rudi G
-
Rudi G schrieb:
Prokkramierer schrieb:
Warum machst du das Enum nicht einfach in die Record-Klasse? Offensichtlich gehört es ja zu dieser.
Aber wenn ich von außerhalb der Klasse eine Öffentliche Methode dieser Klasse aufrufe und der einen Wert eines Enums übergeben muss, kann ich das doch nicht machen wenn der Enum in der Klasse definiert ist, oder muss ich dann Klassenamen::Enum::typ übergeben?
Gruß
Rudi GNein, das sieht dann so aus: Klassenname::typ
-
Prokkramierer schrieb:
Nein, das sieht dann so aus: Klassenname::typ
Cool, vielen Dank für den Hinweis.
Falls ich aber mal ein globales enum benötigen würde, wie müsste/könnte ich es dann machen?
Gruß
Rudi Gedit: Ich habe mal hier http://www.stack.nl/~dimitri/doxygen/autolink.html (das Beispiel unter "Links to variables, typedefs, enum types, enum values and defines.") ein Beispiel gefunden und in Ihrer Dokumentation die generiert wurde, gibt es auch dieses Globale Enum. Ich habe es genau so ausprobiert bei mir wird das enum allerdings ignoriert und nicht in die Doku eingebunden. Was mache ich falsch/anders?
-
Rudi G schrieb:
Prokkramierer schrieb:
Nein, das sieht dann so aus: Klassenname::typ
Cool, vielen Dank für den Hinweis.
Falls ich aber mal ein globales enum benötigen würde, wie müsste/könnte ich es dann machen?
Gruß
Rudi Gedit: Ich habe mal hier http://www.stack.nl/~dimitri/doxygen/autolink.html (das Beispiel unter "Links to variables, typedefs, enum types, enum values and defines.") ein Beispiel gefunden und in Ihrer Dokumentation die generiert wurde, gibt es auch dieses Globale Enum. Ich habe es genau so ausprobiert bei mir wird das enum allerdings ignoriert und nicht in die Doku eingebunden. Was mache ich falsch/anders?
Du hast wohl eine andere Konfiguration für Doxygen verwendet als die Leute aus dem Link.
-
Prokkramierer schrieb:
Du hast wohl eine andere Konfiguration für Doxygen verwendet als die Leute aus dem Link.
Das glaube ich langsam auch, allerdings habe ich unter Experten garnichts gefunden was sich mir so anhören würde.
Würde mich freuen wenn mir jemand helfen könnte.
Gruß
Rudi G
-
wie heißt deine config? Doxyfile ist glaube ich der Default-Name.
Was ist, wenn du EXTRACT_ALL = YES setzt?
HIDE_UNDOC_MEMBERS = NO ?
-
u_ser-l schrieb:
wie heißt deine config? Doxyfile ist glaube ich der Default-Name.
Spielt der Name der Config eine Rolle?
u_ser-l schrieb:
Was ist, wenn du EXTRACT_ALL = YES setzt?
HIDE_UNDOC_MEMBERS = NO ?Ok, vielen Dank für den Tipp. Ich werde es Testen wenn ich heute abend dafür Zeit haben werde.
Gruß
Rudi G
-
u_ser-l schrieb:
Was ist, wenn du EXTRACT_ALL = YES setzt?
HIDE_UNDOC_MEMBERS = NO ?Ich habe es mal getestet und es funktioniert jetzt endlich.
Vielen, vielen Dank.
Gruß
Rudi G
-
Auf der folgenden Seite gibt es noch einen besseren Hinweis zu dem Thema:
http://www.stack.nl/~dimitri/doxygen/docblocks.html#structuralcommands
To document a global C function, typedef, enum or preprocessor definition you must first document the file that contains it (usually this will be a header file, because that file contains the information that is exported to other source files).
Let's repeat that, because it is often overlooked: to document global objects (functions, typedefs, enum, macros, etc), you must document the file in which they are defined. In other words, there must at least be a
/*! \file */
or a
/** @file */
line in this file.