Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > C++ > [C++] Les templates > Lecture des commentaires

[C++] Les templates

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Pseudo Commentaire
Page : 1 
Hors ligne Eclyps # Posté le 30/06/2008 à 19:16:26 - Ce membre a mis la note : 19
Kenny Noël , Yep! Yep! Yep!
Avatar
Groupe : Membres
Très bon tuto, mais tu aurais aussi put parler des classes avec les templaces (ou patrons).
19/20

QScintilla Ma Playlist Image utilisateur
Image utilisateur No Life Test
Image utilisateur Geek Test
Image utilisateur Nerd Test
 
Hors ligne foester # Posté le 30/06/2008 à 19:21:08 - Ce membre n'a pas mis de note
Beer is life !
Avatar
Groupe : Membres
J'ai voulu en parler, mais il y a des notions plus compliquées que pour les fonctions.
Je pense donc que je vais écrire un tutoriel spécialement pour les templates, dans la continuité de celui-ci ;)

Merci pour ton commentaire et ta note :)
 
Hors ligne Layus # Posté le 30/06/2008 à 19:50:52 - Ce membre a mis la note : 14
!? encore un Layus...
Groupe : Membres
Un bon tuto attendu depuis longtemps... on parle tellement des templates et personne n'avait encore pris la peine d'en parler (ou j'ai mal cherché ?)

Peut-être aurais-tu dû l'appeler "templates" qui est un nom plus répandu que "patrons" ou bien alors mettre les 2 dans le titre ?

Et une bonne note supplémentaire !

Merci d'avoir pris le temps de me lire,
Layus

Nihil sum...
 
Hors ligne Sim the Boss # Posté le 30/06/2008 à 20:01:05 - Ce membre a mis la note : 19
euh.... voila
Groupe : Membres
19 / 20
Je suis d'accord sur le fait qu'il aurait mieux fallu appeler ca templates que Patron. Pour ce qui me concerne j'ai lu ce tuto parce que je me demandais "Tiens qu'est ce que c'est les patrons ??" et non pas " Chouette un tuto sur les templates !"
Hors ligne yudassen # Posté le 30/06/2008 à 21:21:50 - Ce membre a mis la note : 20
Graphiste et programeur
Avatar
Groupe : Membres
20/20,
Rien a dire ;) .

Grand Projet Discworld :
Executeur => ||||||||||
Construceur=> ||||||||||


La lumiere va plus vite que le son, c'est pourquoi certaines personnes paraissent brillantes jusqu'a ce qu'elles commenceent a parler

N'est-ce pas yudassen :p
 
Hors ligne fisherprice # Posté le 01/07/2008 à 00:23:34 - Ce membre a mis la note : 19
Avatar
Groupe : Membres
Perfect!! Depuis le temps que je cherchais un éclaircissement sur ce sujet ;)
Hors ligne Apobis # Posté le 01/07/2008 à 02:28:33 - Ce membre n'a pas mis de note
Groupe : Membres
Jtrouve ca un peu maigre. Est cquon peut spécifier, dans template<class Type>, certains types admis et pas d'autres ? ca ressemblerait à template<class Type(int, double, float)> . Ou sinon, est cquon peut créer une variable template, qui admettrait toutes sortes de données ? Et puis quand même, ne pas parler des templates dans les classes, c'est un gros oubli... bref jpose ces questions sans attendre vrmt de réponse pour moi, juste pcq je trouve que ca manque au tuto
Hors ligne raphamil # Posté le 01/07/2008 à 03:15:38 - Ce membre a mis la note : 19
Avatar
Groupe : Membres
Très bon tuto. Il manque peut-être l'évocation des templates de classes ? 19/20

(\__/)
(/¤.¤\) <= Lapinator ! ^^
('')|('')
Exécuter plusieurs fonctions au chargement d'une pageUne horloge temps réel grâce à Javascript (nouveau) • Séparer le comportement de la strucure (bientôt) • Chercher plus rapidement dans la doc Qt
72.73% apple-geek
 
Hors ligne Nanoc # Posté le 01/07/2008 à 10:12:27 - Ce membre a mis la note : 15
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
Hello,

Je fais quelques remarques en vrac sur ton tutoriel :

a) Pour les modèles, on passe par référence constante et pas par valeur. Cela permet d'éviter la copie de gros objets en cas d'appel avec un gros objet.

b) Tu devrais spécifier que tout le code doit se trouver dans le .h ou alors qu'il faut un compilateur qui supporte le mot-clé "export".

c) Tu aurais pu parler des patrons dont l'argument template n'est pas un type.

d) typename n'est pas strictement égal à class. Il a une autre utilité.

Sinon, c'est bien résumé pour un début, mais il me semble que tu ne maîtrises pas pleinement le sujet.
 
Hors ligne wado # Posté le 01/07/2008 à 13:01:27 - Ce membre n'a pas mis de note
Groupe : Membres
Très bon tuto.

Pourrais-tu approfondir la matière ?

20/20
Hors ligne altic # Posté le 01/07/2008 à 16:01:53 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Pas mal mais il manque des choses (les classes modèles déjà, un petit paragraphe sur la métaprogrammation...).

Pour moi ton exemple de spécialisation n'en n'est pas un: cela me paraît plus être de la surcharge car la signature de la fonction n'est pas similaire à ce qu'aurait été une version spécialisée de ta fonction modèle.
Si c'est le cas ça serait pas mal de préciser la notion de spécialisation, parce que je trouve ça assez flou et je dois pas être le seul ^^ .
 
Hors ligne Chlab_lak # Posté le 01/07/2008 à 20:27:09 - Ce membre a mis la note : 16
Tendou : Royaume de dieu
Avatar
Groupe : Membres
je rejoins l'avis de Nanoc et:
- Ta spécialisation est "spéciale" (pas de template<>)
- Tu as oublié de parler de la spécialisation partielle

Sinon bonne introduction.
 
Hors ligne lmghs # Posté le 01/07/2008 à 23:52:25 - Ce membre n'a pas mis de note
Groupe : Membres
e- @ les gens qui commentent: Les spécialisations ne sont pas ce qu'il y a de plus important dans un premier temps. Et puis, Alp a déjà écrit de longues pages sur le sujet. Ne parlons même pas de la métaprog.


f- Le principe des ADT, mis en place en C++ en rendant les classes templates est je pense plus important. Et parfait pour un autre tuto. Inutile de faire des pavés interminables qui font tout du sol au plafond.


Le point b- que soulève Nanoc est je pense assez important vu que le tuto s'adresse aux débutants. Car c'est un énorme piège dans lequel tombe pratiquement tout le monde lors du premier contact avec les templates. Il est vite fait de donner un lien vers la FAQ de développez si tu ne veux pas rentrer dans les détails.


g- Sinon, j'aurais peut-être évité de parler des cas où les paramètres ne sont pas de même type. Le fait qu'il y ait une erreur est parfois une bénédiction qui nous force à expliciter ce que l'on veut manipuler au moment de l'appel.
Autrement, il faut partir dans des truc plus compliqués à base de traits pour déterminer le type qui va bien -- boost a des trucs à ce sujet je crois ; si ce n'est pas boost, c'est loki ou stlsoft [Tiens, ils en parlent dans le /C++ Template: The Complete Guide/].


h- le truc avec string à la fin, ce n'est pas une spécialisation, mais une surcharge. Dans le cas d'une spécialisation, la fonction aurait été calculerSomme<std::string>().

<EDIT>Et au sujet de la (vraie) spécialisation de _fonctions_ templates, je vous renvoie au point 66 du /Coding Standards/ de Sutter&Alexandrescu qui dit en substance: "non c'est mal".
</edit>


i- <culture>si vous voulez des maths et des templates, allez voir le cours d'algorithmique de Stepanov -> stepanovpapers point je ne sais plus trop quoi -> google</>



Bon début sinon. Cela reste simple et pas surchargé d'informations qui ne devraient pas intéresser les débutants.
 
Hors ligne Alp # Posté le 02/07/2008 à 00:17:13 - Ce membre a mis la note : 1
Groupe : Membres
@lmghs : effectivement j'ai déjà écrit de quoi s'occuper sur le sujet ;)

Maintenant, je vais décortiquer cet article que je trouve inutile et non avenu (même pour débutants).

Code : C++
1
calculerSomme(int a, int b);

est incorrect, ou au moins sans rapport avec ce qui vient après.(avant Ruser pour mieux compiler)

Comme dit plus haut, tu présentes la surcharge et non la spécialisation à la fin.

Ce tuto a été écrit par quelqu'un qui n'est pas sur de ce qu'il écrit, qui par conséquent écrit des bêtises, et qui n'a aucunement le recul nécessaire pour écrire un bon document pour débutants sur le sujet.

Je trouve honteux d'avoir publié ce tuto.

Tout ce que savent faire à la fin tes lecteurs, c'est paramétrer les types des arguments d'une fonction. On ne s'en sert pas que pour ça.

C'est vraiment sans intérêt et n'amènera pas bien loin.

J'avais commencé un document sur les templates à l'époque...

http://www.code-libre.org/cours/les-templates.html

C'est loin d'être parfait mais c'est déjà ça.

Non sérieux, je n'en reviens pas. J'aimerais réellement comprendre les motivations qui t'ont poussé à écrire ce cours. Retourne te documenter sur le sujet et reviens-nous pour écrire un tuto ensuite.

@Chab_lak > bon courage ... La spécialisation partielle de fonctions n'est pas autorisée. Il faut passer par des structures templates avec operateur () surchargé pour simuler ce comportement.

Sérieusement, ce tuto ne sert strictement à rien.
 
Hors ligne Alp # Posté le 02/07/2008 à 00:31:55 - Ce membre a mis la note : 1
Groupe : Membres
Sans bien sur parler du fait que l'auteur n'a probablement pas idée lui-même de ou peuvent mener les templates...
 
Hors ligne HeatBurns # Posté le 02/07/2008 à 15:17:05 - Ce membre a mis la note : 20
00010010001101000101
Avatar
Groupe : Membres
Excellent tutoriel. Beaucoup de zeros l'attendaient depuis un moment. On attend ainsi le bog tuto de Nanoc avec moins d'impatience ! :D
Je mets 20/20 pour l'effot consenti.

Hack and Crash




 
Hors ligne jojo jumper # Posté le 07/07/2008 à 15:04:36 - Ce membre a mis la note : 14
Tou aime la mite ?
Avatar
Groupe : Membres
Il est clair qu'il manque des choses et que tout n'est pas forcément au point mais ton tuto reste une bonne introduction pour les zéros qui ne connaissent que le nom "templates" et veulent avoir un léger aperçu de ce que c'est réelement et à quoi cela peut servir. Pourquoi ne pas faire un big tuto sur tout le fonctionnement des templates, de A à Z ? (si tu en es capable, évidemment).

En tout cas, bonne continuation :D

Un truc de grand malade :lol:
le blog de ma mite
 

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 330 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0284s (0.0167s)