2015-11-04 10 views
7

Próbuję udokumentować część mojego kodu za pomocą Doxygen. Mam bibliotekę, którą nazywam grupą Doxygen i wiele klas w osobnych plikach nagłówkowych. Niektóre konstruktory są pokazane jako publiczne funkcje na stronach klas, ale ich dokumentacja jest pokazana na stronie grupy, a nie w sekcji Destruktory na stronie klasy. Niektóre nie są; Jeszcze nie doszedłem do tego schematu.Doxygen (1.8.8) umieszczanie konstruktorów C++/publicznych funkcji członkowskich na stronie grupy, a nie na stronie klasy

Oto jeden, który nie:

/** 
* @addtogroup gr_espresso 
* @{ 
*/ 

/** 
* @file ToyTagger.hh 
*/ 
... 
namespace Espresso { 
    ... 
    /** 
    * @class ToyTagger 
    * @brief Fake tagging algorithm 
    * @details ... 
    * 
    */ 
    class ToyTagger { 
    public: 

    /** 
    * @brief Simple constructor. 
    * @details ... 
    */ 
    ToyTagger(CalibrationMode _mode, const Distribution& _pdf, const Calibration* _smear_cal = nullptr); 
    ... 
    } 
} 
/** 
* @} 
*/ 

Poniższa dokumentacja jest produkowany dla klasy ToyTagger:

enter image description here

konstruktora przedstawionej powyżej w Pseudokod notowanej pod funkcje publiczne państwa, ale nie pod konstruktorami & Dokumentacja niszczenia. Zamiast tego link "Więcej informacji" prowadzi do strony grupy gr_espresso. To samo odnosi się do innego konstruktora, a także jedną z funkcji trzech państw:

enter image description here

ja nie wykazały kod dla drugiego konstruktora lub trzech funkcji składowych, ale nie ma widocznej różnicy .

Z drugiej strony, jest tu taki, który udaje:

/** 
* @addtogroup gr_espresso 
* @{ 
*/ 

/** 
* @file StandardCalibration.hh 
*/ 
... 
namespace Espresso 
{ 
    ... 
    class StandardCalibration : public Calibration { 
    public: 
    /** 
    * @brief Default constructor 
    * @details Simple constructor that creates a trivial calibration 
    * where \f$\omega(\eta) = \eta\f$ 
    */ 
    StandardCalibration(); 
    ... 
    } 
} 

/** 
* @} 
*/ 

To generuje dokumentację spodziewałbym:

enter image description here

Czy ktoś wie, co tu się dzieje? Czy robię coś złego, co prowadzi do takiego (pozornie) nieprzewidywalnego zachowania?

+1

Jedną z różnic jest to, że widzę użyć w drugim przykładzie domyślnego konstruktora podczas gdy w pierwszym exmple stosowany jest wyspecjalizowany konstruktor. – gmug

+0

@gmug To dobra obserwacja. Przejrzę inne konstruktory w bibliotece i zobaczę, czy podążają tym samym wzorcem. Nie wyjaśniłoby to, dlaczego dwie funkcje członkowskie zwracające nieważne są udokumentowane na tej stronie, a nie w pierwszej, ale może to osobny problem. – jwimberley

+0

Niestety, znalazłem inne przykłady w mojej bibliotece, gdzie konstruktor pobiera argumenty i jest odpowiednio udokumentowany. – jwimberley

Odpowiedz

1

Powinieneś spróbować wyprodukować MCVE, aby śledzić problem.

Spróbuj też sprawdzić, co plik, dodać do której grupy: może ona prowadzi do dziwne zachowanie czasami ...

Powiązane problemy