Quels sont les inconvénients de l'utilisation de modèles?

Quelques-uns des inconvénients serait

  1. sa syntaxe est complexe
  2. compilateur génère un code supplémentaire
compilateur génère un code supplémentaire, j'ai lu quelque part (mr. Stroustrup, je pense) que sur les compilateurs modernes en fait pas - pas une seule instruction de frais généraux
Je n'ai pas par la "syntaxe complexe" argument. Si vous trouvez la syntaxe du modèle de la confusion, on devrait être en mettant l'accent sur la nécessité de continuer à apprendre la langue, à ne pas prendre à elle. Et 2 devraient être largement hors de propos, IIRC.
Je pense que le code supplémentaire se produit par exemple lorsque vous instanciez votre basé sur un modèle de récipient à l'encontre de N différents types, et le compilateur génère N légèrement différentes versions du code conteneur. (Comparez cela à la méthode classique où vous avez à la main le code une seule classe de conteneur qui peut contenir n'importe quel type d'objet... dangereux au moment de l'exécution, mais seulement une copie de l'contenant le code est généré)
Si votre compilateur ne peut pas plier dupliquer à l'identique le code généré à partir de modèles, il y a des techniques pour - en toute sécurité! - le faire dans le code (comme fondant tous T* instances sur un void* avec un mince au moment de la compilation emballage autour de lui pour le type de sécurité).
et de Dames: Vous n'avez pas besoin d'inclure la totalité des alias pour les notifications (et vous ne pouvez pas me prévenir 😉, voir blog.stackoverflow.com/2010/01/new-improved-comments-with-reply

OriginalL'auteur anish | 2010-04-29