IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Documentation Doxygen - Méthode


Sujet :

C++

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut Documentation Doxygen - Méthode
    Bonjour à tous,


    Tout d'abord, je voudrai savoir s'il existait un bon tutoriel sur l'utilisation de Doxygen (surtout l'aspet dot, il me semble qu'on peut changer l'aparence des graphiques, mais j'ai jamais sû le faire).

    Ensuite j'aimerai savoir s'il y avait des "standarts" de documentation avec doxygen pour C++... certains documentent tout dans les entêtes, d'autre ne décrivent que les entêtes brievements, le reste est dans les implémentations...
    En terme de notation également, vous utilisez laquelle?

    Et pourquoi pas, est-ce qu'il y a d'autres outils similaires?


    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    FranckH a écrit un tuto sur le sujet : http://franckh.developpez.com/tutoriels/outils/doxygen/

    Ca doit répondre à pas mal de tes questions

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Merci beaucoup, je vais lire ça
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Et si je puis me permettre, mes modestes commentaires.

    Sinon, pour moi, c'est :
    - toute la doc doxygen dans les .h (sauf pour les trucs locaux à une seule unité de traduction qui se retrouvent documentés dans les .cpp) -- maintenir la doc dans les .h à jour est déjà suffisament couteux en énergie, inutile de se compliquer plus la vie en sortant la doc des .h ;
    - des détails d'implémentations dans les .cpp (au format pas doxygen) ;
    - un fichier .dox par composant pour définir les groupes associés au composant ;
    - et le fichier doxyfile pour tout le projet.

    Pour dot, il n'y a pas grand chose à faire.
    - Le style UML n'apporte rien à part des boites à 3 tiroirs -- les héritages ne sont toujours pas représentés correctement selon le style UML
    - Doxygen ne sait pas reconnaitre les relations impliquées par les divers conteneurs standard.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    J'ai pas mal séché sur un truc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CMaClasse.h:
     
    #ifndef C_MA_CLASSE_H
    #define C_MA_CLASSE_H
     
    class CMaClasse
    {
        void UneFonction();
        #include CMaClasse.inl
    }
     
    #endif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CMaClasse.inl:
    inline void CMaClasse::UneFonction() {}
    J'ai toujours eu l'habitude de coder comme ça mes classes lorsqu'il y avait des méthodes inline, et j'ai remarqué que Doxygen ne trouvait pas l'implémentation de "UneFonction" tant que l'on ne rajoutait pas le qualificateur "inline" également dans la définition de la fonction:

    Warning: no matching class member found for void CMaClasse::UneFonction(). Possible candidates : void CMaClasse::UneFonction()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CMaClasse.h:
     
    #ifndef C_MA_CLASSE_H
    #define C_MA_CLASSE_H
     
    class CMaClasse
    {
        inline void UneFonction(); // là ça marche, plus de warning
        #include CMaClasse.inl
    }
     
    #endif
    Du coup je me demande si ne pas mettre "inline" dans la déclaration et le mettre dans l'implémentation est correct ?
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Il y a un problème, là.
    Normalement, une fonction inline est supposée définie de l'une de ces deux façons:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class CMaClasse
    {
    	void UneFonction();
    };
     
    inline void CMaClasse::UneFonction()
    {
    }
    Ou:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class CMaClasse
    {
    	void UneFonction()
    	{
    	}
    };

    Mais PAS comme ceci:
    Code C++ douteux : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class CMaClasse
    {
    	void UneFonction();
    	void CMaClasse::UneFonction()
    	{
    	}
    };
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Ha oui mince, j'ai mal fait l'exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CMaClasse.h:
     
    #ifndef C_MA_CLASSE_H
    #define C_MA_CLASSE_H
     
    class CMaClasse
    {
        void UneFonction();
    }
    #include CMaClasse.inl
     
    #endif
    Là doxygen rale et ne me rajoute pas la fonction dans la documentation, il faut d'abord que je rajoute "inline" dans le prototype de la fonction dans la classe.
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

Discussions similaires

  1. Documentation et méthodes adodbapi?
    Par xla99 dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 24/04/2011, 07h02
  2. Compiler une documentation doxygen Latex.
    Par Cpowa dans le forum Débuter
    Réponses: 10
    Dernier message: 01/12/2010, 16h01
  3. [organisation] commentaire et documentation doxygen
    Par koala01 dans le forum Farfelue
    Réponses: 10
    Dernier message: 18/04/2010, 16h00
  4. [DOM] Construction d'un document XML : méthode construct inconnue
    Par guigui5931 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/07/2007, 12h24
  5. [c#] passer un xml document à une méthode du webservice
    Par nemya dans le forum Services Web
    Réponses: 3
    Dernier message: 18/12/2006, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo