2010-05-30 7 views
10

Gibt es eine Möglichkeit Template-Parameter wie folgt zu dokumentieren:doxygen C++ Inline-Vorlage Dokumentation

template< 
    int N, ///< description 
    typename T ///< description 
> 

anstatt dass jeder einzelnen Parameter mit tparam?

bitte, dass Funktionsargumente beachten kann, wie dies in aktuellen doxygen dokumentiert werden:

void function(int a /**< description */); 

wenn es nicht ein, wie schwer wäre es umsetzen? Wenn Sie mit Doxygen Interna vertraut sind, können Sie mir in die Richtung zeigen, wo es zu implementieren ist.

danke

Antwort

6

Es gibt keine Möglichkeit, Ihre Template-Parameter zu dokumentieren, wie Sie beschrieben.

Ich würde sagen, es ist keine gute Idee, denn dann würden Sie Ihre Template-Parameter anders als Ihre üblichen Parameter dokumentieren, und warum sollten Sie das wollen?

Normalerweise sieht es wie folgt aus:

/*! \p transpose : transpose a matrix 
* 
* \param A input matrix 
* \param At output matrix (transpose of A) 
* 
* \tparam MatrixType1 matrix 
* \tparam MatrixType2 matrix 
*/ 

template <typename MatrixType1, typename MatrixType2> 
void transpose(const MatrixType1& A, MatrixType2& At); 

und Sie wollen es so aussehen ?!

/*! \p transpose : transpose a matrix 
* 
* \param A input matrix 
* \param At output matrix (transpose of A) 
* 
*/ 

template < 
    typename MatrixType1, ///< matrix 
    typename MatrixType2 ///< matrix 
> 
void transpose(const MatrixType1& A, MatrixType2& At); 

Warum?

+2

Er * könnte * jeden üblichen Parameter auch auf eine neue Zeile setzen. – Pieter

+0

Ja, ich wollte auch solche Parameter platzieren. Ich finde es etwas einfacher zu lesen (in Quelle), da Parameter direkt nach der Deklaration dokumentiert wird – Anycorn

+2

Durch die Dokumentation der Parameter, wo sie im Code definiert sind, das Risiko zu vergessen, einen neuen Parameter zu vergessen, wenn es hinzugefügt wird, oder Vergessen, die Dokumentation eines Parameters zu entfernen, wenn es entfernt wird, nimmt deutlich ab. – HelloGoodbye

Verwandte Themen