Bien évidemment que la duplication de code est présente si et seulement si il y a plusieurs instantiations. Bien évidemment que tout ceci est au conditionnel. Et j’ai toujours pensé que le choix de l’algo. était absolument primordial dans la vitesse de traitement informatique, mais comme ça n’était pas le sujet du fil je ne l’ai pas mentionné.
Je vais prendre un exemple pratique. Je pensais plutôt à un défaut du cache d’instructions éventuel, par exemple mettons qu’on ait un patron de fonction
template<classT>f<T>(T);
avec un corps assez long pour que toutes les instances du patron appelées alternativement ne tiennent pas en cache CPU (genre un coup on fait appel à f<int> puis à f<double> puis à f<maSuperClasseDeLaMortQuiTue>, etc.). Est-ce que le cas d’un défaut du cache d’instruction est facilement atteint avec un code&CPU "standard" ? Là est toute (削除) la (削除ここまで)ma question.
Par exemple, en restant sur T un type numérique, peut-être vaut-il mieux avoir une fonction f(double) (eg. sans template/polymorphisme), et jouer sur la conversion implicite des arguments de l’appel, plutôt que d’abuser des templates.
C’était tout le sens de mon commentaire : dire a priori que les templates ne coûtent rien à l’exécution me semblait être assez imprudent.
[^] # Re: Et les nouveaux langages de programmation...
Posté par Pierre Roc . En réponse au journal Pourquoi un PC ralentit-il ?. Évalué à -2. Dernière modification le 03 juillet 2014 à 19:09.
Arf... ce mépris, ça commence à me gonfler.
Bien évidemment que la duplication de code est présente si et seulement si il y a plusieurs instantiations. Bien évidemment que tout ceci est au conditionnel. Et j’ai toujours pensé que le choix de l’algo. était absolument primordial dans la vitesse de traitement informatique, mais comme ça n’était pas le sujet du fil je ne l’ai pas mentionné.
Je vais prendre un exemple pratique. Je pensais plutôt à un défaut du cache d’instructions éventuel, par exemple mettons qu’on ait un patron de fonction
avec un corps assez long pour que toutes les instances du patron appelées alternativement ne tiennent pas en cache CPU (genre un coup on fait appel à
f<int>puis àf<double>puis àf<maSuperClasseDeLaMortQuiTue>, etc.). Est-ce que le cas d’un défaut du cache d’instruction est facilement atteint avec un code&CPU "standard" ? Là est toute(削除) la (削除ここまで)ma question.Par exemple, en restant sur T un type numérique, peut-être vaut-il mieux avoir une fonction f(double) (eg. sans template/polymorphisme), et jouer sur la conversion implicite des arguments de l’appel, plutôt que d’abuser des templates.
C’était tout le sens de mon commentaire : dire a priori que les templates ne coûtent rien à l’exécution me semblait être assez imprudent.