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

Contribuez C++ Discussion :

Petite coquille dans le tutoriel sur les designs Patterns en C++


Sujet :

Contribuez C++

  1. #1
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut Petite coquille dans le tutoriel sur les designs Patterns en C++
    Bonjour.

    Sur le chapitre consacré à la fabrique, dans le dernier code, on peut lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [...]
    //fichier fabrique.cpp
    template <class Object,class Key> std::map<Key,Object*> Factory<Object,Key>::m_map=std::map<Key,Object*>();
    [...]
    or un .cpp (sauf s'il n'est pas enregistré en tant que source, mais c'est laid ) ne peut contenir de templates sur les compilateurs "standards".

    il faudrais probablement remplacer .cpp par autre chose (l'auteur semble utiliser les .inc).

    bon, c'est vraiment chercher des poux dans la tête des tutoriels, mais autant qu'il soient parfaits

    Et désolé de donner du boulot aux modos.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Ouais, cest pas faux. Mais de toute facon:
    1) tout l'article est en train detre revu en profondeur, j'hesite meme a le desactiver en attendant
    2) Je ne suis pas chez moi avant debut aout, je ne pourait donc rien faire en attendant.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Salut,

    En fait, il n'y a aucune interdiction à ce qu'un fichier .cpp contienne du code template...

    La seule chose, c'est que l'on déconseille normalement d'inclure un fichier .cpp avec la directive préprocesseur #include, pour des raisons évidentes (de définitions multiples, entre autres).

    Or, pour que le compilateur soit en mesure de fournir le code binaire correspondant à une fonction (membre d'une classe) template, il doit... disposer du code de cette dernière

    Le fait de placer le code d'une fonction (membre d'une classe) template dans un fichier *.cpp revient donc à... ne fournir ce code que pour le fichier en question, ce qui peut parfois avoir quelques avantages, comme, par exemple, permettre d'attendre que le fichier d'en-tête d'une classe qui n'aurait été que déclarée anticipativement soit inclus
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    d'accor, mais si le code template existe à moitié dans un .h et dans un .cpp, il va falloir mettre tout le reste du code du programme dans le .cpp... ça s'annonce joyeux

    enfin, au moins, il n'y aura pas de problèmes de doublons d'instanciations templates et ce, sans C++0x, c'est une bonne méthode en fait
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

Discussions similaires

  1. J'en veux plus sur les Design Patterns ;)
    Par Le Barde dans le forum Contribuez
    Réponses: 9
    Dernier message: 09/01/2008, 18h02
  2. Meilleur livre sur les design patterns en Java?
    Par JFortranDoc dans le forum Logging
    Réponses: 5
    Dernier message: 15/06/2006, 02h19
  3. Recherche de doc sur les Design pattern
    Par MicroPuce dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 09/05/2005, 16h58

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