Doxygen und C++ template Klasse



  • Hallo.

    Beim kommentieren mit Doxygen meiner Templateklasse erhalte ich Fehler.

    Unter anderem:
    - member found for template < T > bool Funktionsname...
    - no uniquely matching class member found for template < T >

    Wie kommentiere ich eine Methode in einer Templateklasse richtig. Bisher so:

    ///  @brief	Test
    ///		
    ///
    ///  @param	count int - Anzahl
    ///
    ///  @return	bool - Erfolg
    ///
    bool MyClass::Test(int count)
    {
     ...
    }
    

    und nun bei einer Methode in einer Templateklasse

    template<class T>
    bool MyClass::Test(int count)
    {
     ...
    }
    

    Was muss ich da noch angeben??

    Gruß c++ user



  • so gehört das richtig in C++

    template<class T>
    bool MyClass<T>::Test(int count)
    {
     ...
    }
    


  • Hallo.
    Da hast du vollkomen recht. Das habe ich aber nur hier falsch. Sonst hätte ich ja schon einen Kompilerfehler bekommen.

    Doch leider löst das noch nicht mein Doxygen Problem.



  • c++ user schrieb:

    Was muss ich da noch angeben??

    Werde mal etwas konkreter. Im ersten Fall steht nur eine Member Funktion einer normalen Klasse und im zweiten Fall steht eine Member Function einer Template Klasse.



  • Wie konkreter?

    Ich will eigentlich nur eine Methode kommentieren die in einer template Klasse sich befindet. Und dabei erhalte ich die angegebenen Fehler.



  • Andere Frage zu Doxygen und Templates:
    Bekommt man das Ausgabeformat auch irgendwie schlanker, so dass nicht bei jeder Member-Funkion wieder der gesamte Klassenname samt Template-Parametern dasteht? Das resultiert jedesmal in einer Bildschirm-langen Zeile, die kein Mensch lesen kann und ist einfach nur völlig redundant.
    Auch wäre es schön, wenn einem Klick auf die Funktion in der Member Functions Übersicht auf wirklich zur Dokumenation innerhalb der Klasse (also auf der selben Seite) gesprungen wird und nicht evtl. zur Dokumentation einer Basisklasse.
    Ich habe unter den 1323 Flags der Doxyfile leider noch nichts passendes finden können.



  • Ich hab nicht viel mit Doxygen zu tun, aber dieses Beispiel läuft fehlerfrei durch.

    #include <iostream>
    
    //! A Sample
    template<class T>
    class DoxygenSample {
    public:
    
    	//! Constructor
    	DoxygenSample(int);
    
    };
    
    //! @param size Size of the Sample
    template<class T>
    DoxygenSample<T>::DoxygenSample(int size) {
    
    }
    
    int main() {
    	DoxygenSample<int> d(5);
    
    	return 0;
    }
    

Anmelden zum Antworten