2012-12-06 19 views
28

Dane:Dokumentowanie wartości enum z doxygen

namespace Foo { 
    class Foo { 
    public: 
     /// Foo enum, possible ways to foo 
     enum class Foo { 
      /// Foo it with an A 
      A, 
      /// Foo it with a B 
      B, 
      /// Foo it with a C 
      C 
     } 
    } 
} 

a domyślny Doxyfile wykonane z doxygen -g, otrzymuję to:

generated documentation

Jak mogę uzyskać wartości enum udokumentowane? Próbowałem wstawić komentarz przed/po członku, używając ///<, itp., Bezskutecznie. Czy to może być błąd w doxygen? Przykłady w pracy docs. (Kliknięcie na nazwę wyliczenia nie przynosi mnie wszędzie)

+0

Usunąłem odpowiedź, ponieważ nie dotyczyło to C++ 11. enum class {} – drescherjm

+0

Dziękuję za poświęcony czas :) –

+0

Każdy styl w tym pytaniu lub odpowiedzi działają dla mnie z Doxygen 1.8.2. Z drugiej strony, tylko jeden z nich pracuje na maszynie moich kolegów, także z Doxygenem 1.8.2 - i przy identycznych wejściach świeżych od kontroli źródła. Coś strasznego dzieje się tutaj. –

Odpowiedz

16

Z Doxygen 1.8.2, zarówno dla mnie następujące prace:

Korzystanie ///

/// This is an enum class 
enum class fooenum { 
    FOO, ///< this is foo 
    BAR, ///< this is bar 
}; 

Korzystanie /*! ... */

/*! This is an enum class */ 
enum class fooenum { 
    FOO, /*!< this is foo */ 
    BAR, /*!< this is bar */ 
}; 

Brief Description Detailed Description

doxygen changelog mówi, że enum class jest obsługiwana w Doxygen 1.8.2, więc podejrzewam, że może być jakiś drobny problem składni w poleceniach. Czy mógłbyś porównać swoje polecenia z powyższymi dwoma opisami?

Nowe funkcje

Dodano wsparcie dla C++ 11:

strongly typed enums, e.g.: 
enum class E 
+0

Dzięki https://gist.github.com/c9b75f0a41525b2cbaf2 otrzymuję http://i.imgur.com/nvsD2.png. Ten sam wynik, gdy jest członkiem klasy. Co masz z tym wspólnego? Czym się różni? –

+1

Mam problem z tym rozwiązaniem, gdy przypisuję również wartości wymienionym elementom. Na przykład: Klasa wyliczenia pozycji:! :: std int8_t { UNDEFINED = 1,/* madduci

+0

@blackibiza Chciałabym móc ci w tym pomóc (nie mogę zagwarantować, że będę w stanie rozwiązać problem), ale dawno temu byłam fanatykiem doxygen i od tego czasu przeszedłem na większe i lepsze rzeczy. Gdybym miał działającą konfigurację doksygenu, musiałbym rzucić okiem. Do tego czasu najlepiej jest zadać nowe pytanie, aby uzyskać lepszą widoczność, i miejmy nadzieję, że ktoś inny na to spojrzy. Zauważ także, że twórca i główny twórca doxygen jest tutaj [członkiem aktywnym] (http://stackoverflow.com/users/784672/doxygen) tutaj. –

4

mieszek styl działa dla mnie:

enum class Foo { 
    /**Foo it with A*/ 
    A, 
    /**Foo it with B*/ 
    B 
} 
5

Zauważ, że ja osobiście nienawidzę mieć pliki nagłówkowe, które są długotrwałe (ponieważ dokumentowanie oznacza pisanie co najmniej 2 lub 3 linii dokumentacji, n jedno słowo, więc generalnie nie mam wystarczająco dużo z krótkim opisem, więc wolę dokumentować w pliku .cpp.

Do tego służy funkcja \ var Doxygen.

więc nagłówek przychodzi goły:

namespace Foo { 
    class Foo { 
    public: 
     enum class Foo { 
      A, 
      B, 
      C 
     }; 
    }; 
} 

a plik .cpp posiada:

namespace Foo { 

/** \enum Foo::Foo 
* \brief Foo enum, possible ways to foo 
* 
* All the necessary details about this enumeration. 
*/ 

/** \var Foo::A 
* \brief Foo it with an A 
* 
* When you use A... etc. 
*/ 

/** \var Foo::B 
* \brief Foo it with an B 
* 
* When you use B... etc. 
*/ 

/** \var Foo::C 
* \brief Foo it with an C 
* 
* When you use C... etc. 
*/ 

} 

ten sposób można naprawdę udokumentować na długości co zdarza się często do mnie.

+1

Dzięki. Ja też wolę ten styl. Umieść dokumentację, w której przechowujesz źródło * nie * w nagłówku. –

+0

Jeśli jednak zamierzasz dystrybuować plik nagłówka dla biblioteki, którą napisałeś, twój styl oznacza, że ​​plik nagłówkowy jest wolny od komentarzy. – hmijail

+0

@hmijail Tak i możesz mieć swoje pliki Doxygen HTML w jakiejś (darmowej) witrynie gdzieś ... Więc możesz umieścić link w swoim pliku nagłówkowym, mówiąc: "Dokumenty można znaleźć tam". –

Powiązane problemy