Hello,
§ Template
a- J’ai toujours mal avec la traduction de termes techniques vers des termes plus
génériques, voir pseudo-interchangeables en français. Ici "template" qui devient "patron" ou "modèle". Pour info, "template" vient du vieux François "templet". Je pinaille.
b- La saisie sécurisée peut partir en boucle infinie sur une fermeture de std::cin
. Même sans ^D
(ou ^Z
sous Windows), on y arrive vite avec un ./executable < fic_de_test
où le fichier de test est corrompu.
c- "sans effort ni difficulté", quand le machin derrière "sans" peut exister en nombre > 1, le machin doit prendre la marque du pluriel — le chevalier reste donc "sans tête", mais je mettrais bien un 's’ à "effort" et à "difficulté"
d- Je me pose la question de faire le rapprochement avec les paramètres de fonctions qui peuvent être réels ou formels. C’est la même chose avec les templates.
e- Je séparerai le 101 de la méta-prog de la déclaration de classes et de fonctions template.
Dans ce 101: spécialisations templates, surcharges, classes de traits, politiques, et éventuellement la base de la résolution à la Prolog/XSLT et/ou les récursions à la LISP — étape d’après, SFINAE, listes de types, etc etc.
Je laisserai de côté la spécialisation de fonctions templates (surtout que l’on préfère souvent la surcharge) pour l’instant.
f- Il ne m’a pas semblé voir le rappel élémentaire que l’on a déjà manipulé des choses templates: les collections standards, quelques algos standards, etc. Et que le but du chapitre est d’initier à l’écriture de ces choses.
EDIT: Pénible la règle anti-flood
§ erreur
a- "sqrt
[…] attends". Pas de "s" à "attend"
b- le contrat de sqrt va plus loin: je vrai de renvoyer un nombre positif que si tu le multiplies par lui-même, tu retrouveras ton nombre de départ, à un epsilon près.
c- Tout ceci me rappelle ma relecture du cours du sdz/oc à la veille du C++11. Les contrats ont été validés pour le C++20. Ne faudrait-il pas un petit mot pour dire que le C++20 offrira de nouveaux outils à ce sujet?