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:
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:
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:
Czy ktoś wie, co tu się dzieje? Czy robię coś złego, co prowadzi do takiego (pozornie) nieprzewidywalnego zachowania?
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
@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
Niestety, znalazłem inne przykłady w mojej bibliotece, gdzie konstruktor pobiera argumenty i jest odpowiednio udokumentowany. – jwimberley