Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Communauté
Communauté Suivez l'actualité C++ et contribuez à la vie de la communauté francophone C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/07/2010, 07h17   #1
méphistopheles
Membre Expert
 
Avatar de méphistopheles
 
Inscription : janvier 2005
Messages : 1 552
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2005
Messages : 1 552
Points : 1 224
Points : 1 224
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 :
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...
méphistopheles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2010, 11h15   #2
Davidbrcz
Rédacteur

 
Avatar de Davidbrcz
 
Homme
2A Supaéro
Inscription : juin 2006
Messages : 2 124
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 21

Informations professionnelles :
Activité : 2A Supaéro

Informations forums :
Inscription : juin 2006
Messages : 2 124
Points : 3 497
Points : 3 497
Envoyer un message via MSN à Davidbrcz
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)
Davidbrcz est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2010, 17h21   #3
koala01
Modérateur
 
Avatar de koala01
 
Philippe Dunski
Inscription : octobre 2004
Messages : 8 753
Détails du profil
Informations personnelles :
Nom : Philippe Dunski
Âge : 41

Informations forums :
Inscription : octobre 2004
Messages : 8 753
Points : 13 727
Points : 13 727
Envoyer un message via MSN à koala01 Envoyer un message via Skype™ à koala01
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
je ne répondrai à aucune question technique par E-mail, message visiteur ou message privé
Vous avez obtenu votre réponse pensez au bouton en bas de page
koala01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2010, 18h28   #4
méphistopheles
Membre Expert
 
Avatar de méphistopheles
 
Inscription : janvier 2005
Messages : 1 552
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2005
Messages : 1 552
Points : 1 224
Points : 1 224
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...
méphistopheles est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h52.


 
 
 
 
Partenaires

Hébergement Web