Globale Operatoren/Funktionen mit Doxygen dokumentieren

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Globale Operatoren/Funktionen mit Doxygen dokumentieren

Beitrag von kaiserludi »

Wie strukturiere ich am geschicktesten globale Funktionen und Operatoren in Doxygen?
Ich habe in einem Namespace ca. 20 Klassen und ein davon hat ca. ein Dutzend globale Operator-Templates. Diese sind also nicht Member der Klasse, da sie an alles, was sie aufrufen müssen, eh übers public Interface der Klasse ran kommen. Nun führt das aber zu der Unschönheit, dass ich in Doxygen, wenn ich auf die Referenz des Namespaces gehe, diese Funktionen alle direkt auf einer Seite mit den Klassen habe. Sie nehmen dort mehr Platz ein, als die Klassen. Interessieren tun einen diese Funktionen aber eigentlich nur, wenn man die Doku zu der Klasse, zu deren Interface sie quasi gehören, sehen will. Entsprechend hätte ich sie gerne nicht direkt in der Übersicht des Namespaces, sondern erst zusammen mit den public Membermethoden der Klasse aufgelistet, nachdem man auf diese geklickt hat.
Wie stelle ich das am geschicktesten an?
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4263
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Beitrag von Chromanoid »

Ich habe eben mal gegooglet und irgendwas von Grouping und Subpaging in doxygen gelesen. Hast du dir mal angeschaut, was man damit anfangen kann?
Siehe http://www.stack.nl/~dimitri/doxygen/grouping.html
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Beitrag von kaiserludi »

Ja, mit den Groups, Member Groups und Pages spiele ich schon seit Freitag intensiv rum, aber bei diesem Problem habe ich mir damit bisher nicht helfen können, genauso wenig übrigens wie bei dem Problem, die Doku für mehrere Programmiersprachen mit möglich wenig Redundanz umzusetzen, ohne dass ich in der Klassenübersicht oder der Memberübersicht dann die API aller Sprachen bunt durcheinander gewürfelt präsentiert bekomme, weil gleiche Funktionalität auch nachvollziehbaren Gründen natürlich meist sprachübergreifend die gleichen Namen hat und Module eben keine Auswirkungen auf Klassenübersicht, Memberübersicht, etc. haben.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Beitrag von CodingCat »

Ja, das ist höchst ärgerlich. Da kommt eben doch durch, dass C++ weitestgehend als rein objektorientierte Sprache im klassischen Sinne zum Einsatz kommt. Hätte ich die Zeit, würde ich mich wohl an einer Contribution versuchen, die globale Funktionen all den Klassen/Typen zuordnet, welche in der Signatur vorkommen, dem Namespace dagegen nur mit expliziter global-Markierung oder in einer zusätzlichen Komplettübersicht. :|
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Beitrag von kimmi »

Du kannst ein separates Dokemt für die sprachunabhängige API definieren. Wenn du die Links zu den jeweiligen Sprachen brauchst, referenzierst du halt auf diese. Dann definierst du dir so etwas wie eine Gruppe API und verpasst den jeweiligen Sprachen API.cpp als Namen.

So könnte ich mi das Ganze vorstellen, wenn du von den Sprachen abstrahieren möchtest.

Gruß Kimmi
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Beitrag von kaiserludi »

Habe die Lösung gefunden:
Es gibt ein Schlüsselwort "relates" bzw. equivalent "related", welches dafür sorgt, dass die Doku für eine globale Funktion im Abschnitt "related functions" in der Doku der angegeben Klasse auftaucht, statt global im Namespace aufgleicher Eben wie alle Klassen rum zu fliegen. Genau so, wie ich das wollte :)
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Beitrag von CodingCat »

Wow, danke, kannte ich bisher auch nicht.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Antworten