2017-03-08 5 views
1

Betrachten Sie diesen Code:Doxygen: Verschieben einer statischen Variablen Dokumentation innerhalb einer Funktion

#include <string> 

namespace MyNamespace 
{ 

/** \brief Error Class */ 
class Error 
{ 
public : 
    /** \brief Constructor */ 
    Error (int in_code, const std::string& in_message); 
    ... 
}; 

/** \brief Successfull result */ 
static Error SUCCESS(         0, "Success. "); 
/** \brief Error of unknown kind, used internally only to identify a pending result */ 
static Error ERROR_UNKNOWN(       1, "Unknown Error. "); 
... 

}; 

MyNameSpace ist bereits Teil einer doxygen Gruppe. Wenn ich in der Dokumentation zu generieren, die ich erhalten:

  • Eine Seite für Error Klassenbeschreibung
  • SUCCESS und ERROR_UNKNOWN sind "Funktionen" (wierd!) In der MyNamespace Seite

Wie kann ich Tag SUCCESS und ERROR_UNKNOWN in der Klassenbeschreibungsseite Error erscheinen?

Hinweis: Ich kann keine neue Gruppe definieren und beide hinzufügen, da meine Gruppenliste eingefroren ist (wir wollen eine Gruppe pro Bibliothek). "Versteckte" Gruppe könnte Lösung sein.

Antwort

1

Bisher war die beste "Lösung", die ich finden konnte, \memberof zu verwenden.

Dies:

/** \memberof Error @{ */ 

/** \brief Successfull result */ 
static Error SUCCESS(         0, "Success. "); 
/** \brief Error of unknown kind, used internally only to identify a pending result */ 
static Error ERROR_UNKNOWN(       1, "Unknown Error. "); 
... 

/** @} */ 

Wird SUCCESS und ERROR_UNKNOWN unter "öffentlichen, statischen Funktionen" von Error Klassenbeschreibung bewegen. Das ist nicht sehr nett, da sie dann mit anderen echten statischen öffentlichen Elementfunktionen gemischt werden. Aber das Hinzufügen einen \name-Tages als auch ...

/** \memberof Error @{ */ 
/** \name Error values: */ 

/** \brief Successfull result */ 
static Error SUCCESS(         0, "Success. "); 
/** \brief Error of unknown kind, used internally only to identify a pending result */ 
static Error ERROR_UNKNOWN(       1, "Unknown Error. "); 
... 

/** @} */ 

bewegt SUCCESS und ERROR_UNKNOWN in einem „Fehlerwert“ unter „ähnlichen Funktionen“ von Error Klassenbeschreibung, mit einem netten Hinweis Berichterstattung (Note that these are not member functions.) .... der auf jeden Fall akzeptabel ist ...

0

im Code SUCCESS und ERROR_UNKNOWN sind nicht Teil der Error Klasse, und so die erzeugte Dokumentation korrekt ist (das Problem der „Spaß ction "beiseite).

Der Versuch, Doxygen als Teil der Error-Klasse darzustellen, ist sehr irreführend, da die Dokumentation und der Code jetzt widersprüchlich sind.

Wenn Sie wirklich wollen SUCCESS Teil der Error Klasse sein, machen Sie es so in den Code.

Oder, und dies ist wahrscheinlich die Absicht, in der Dokumentation für die Error Klasse, fügen Sie einen Kommentar wie @see SUCCESS, @see ERROR_UNKNOWN.

Dadurch werden "Siehe auch" -Kommentare generiert, die auf die Dokumentation für diese Elemente verweisen.

+0

@see ist nicht möglich, da mindestens 40 verschiedene statische Fehlerobjekte verfügbar sind. Ich weiß, dass das generierte Dokument korrekt ist, und ich weiß auch, dass diese statischen Objekte Teil der Klasse sein sollten, anstatt global zu sein, aber ich kann das jetzt nicht ändern ... Die Lösung, die ich geschrieben habe, ist nicht so schlecht, wie der Doc erwähnt dass "das sind keine Mitgliedsfunktionen." ... – jpo38

Verwandte Themen