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

Langage C++ Discussion :

Optimisations des includes


Sujet :

Langage C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 274
    Par défaut Optimisations des includes
    Bonjour à tous ,

    Je voulais savoir si il était possible d'optimiser les includes dans un projet autrement qu'en faisant des forward declarations un peu partout .

    En fait disons le plus clairement j'ai une classe mère dont héritent plusieurs classes dérivées dont les déclarations sont situées à chaque fois dans un .hpp différent.
    Le problème étant que l'accès à la totalité de ces classes est sensé pouvoir se faire, donc pour cela et dans l'état actuel des choses je suis obligé de passer par un fichier .hpp regroupant les includes de tous les fichiers .hpp des classes dérivées.
    Or ce n'est vraiment pas très pratique puisque je serai souvent amené à ajouter des classes dérivées de la classe mère ci-dessus et donc à compléter le fichier regroupant tous les includes !

    Y a-t-il une solution pour pallier ce problème ?

    Merci par avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    à vue de nez la meilleure solution serait de revoir l'architecture qui semble, au mieux, bancale.

    Favoriser les forward declaration dans les header n'a qu'une incidence sur la vitesse de compilation de toutes façons. Bien que ça peut être intéressant pour un gros projet et permettre de gagner de précieuses minutes de compilation.

    Il y a aussi les header précompilés qui peuvent être utilisés.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonjour,

    Je ne comprend pas l'intérêt du regroupement. Quand tu utilises une classe dérivé alors tu les utilises toute ? Si c'est le cas, en effet, un regroupement a un intérêt, mais il y a surment un gros problème de conception (non respect du SRP). Sinon, pourquoi regrouper ? J'ai besoin d'une classe je fais une déclaration anticpée ou un include, quel intérêt d'inclure toute un groupe si j'en utilise qu'une.

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Sauf si effectivement tu codes une bibliothèque ... mais dans ce cas, le gros fichier est requis.

    Par exemple, jette un œil sur le fichier <map> de la STL de g++, c'est d'un joli tout plein...

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Ce que fait l'implémentation de GCC ça n'a pas d'importance, la norme indique ce que doit contenir le fichier <map> comme interface : map, multimap et les opérations associées, je ne trouve pas ça excessif, c'est un ensemble cohérent d'éléments.

    Cependant je suis d'accord avec toi, lors de l'écriture d'une bibliothèque il arrive de fournir un fichier d'include qui fait plusieurs include pour offrir de quoi faire les utilisations les plus courante avec qu'une seule include. C'est ce que fait boost typiquement. Par contre ça n'amène aucun problèmes : ça se fait indépendamment du reste.

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 274
    Par défaut
    Merci pour vos réponses

    Il s'agit peut-être d'un problème de design. Je vais regarder ça de plus près.

    Edit : en fait je suis un ****cile je n'ai absolument pas besoin d'inclure toutes les classes dérivées seulement l'include du fichier de la classe mère est utile.

    Désolé pour la perte de temps, sujet inutile mais résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation des tables
    Par le-roy_a dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 24/01/2005, 10h04
  2. optimisation des requêtes
    Par yech dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/09/2004, 19h03
  3. [Compilateur] Optimisation des conditions
    Par Pedro dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2004, 13h49
  4. [JSP] utilisation dynamique des includes
    Par shinchun dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 24/05/2004, 15h28
  5. Optimisation des requetes
    Par bifidus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/10/2003, 11h29

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