Seite 1 von 1

Globale Operatoren/Funktionen mit Doxygen dokumentieren

Verfasst: 24.04.2012, 11:43
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?

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Verfasst: 24.04.2012, 22:46
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

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Verfasst: 25.04.2012, 11:39
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.

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Verfasst: 25.04.2012, 11:52
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. :|

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Verfasst: 26.04.2012, 13:04
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

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Verfasst: 05.07.2012, 15:21
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 :)

Re: Globale Operatoren/Funktionen mit Doxygen dokumentieren

Verfasst: 05.07.2012, 16:56
von CodingCat
Wow, danke, kannte ich bisher auch nicht.