Sont les Modèles C++ seulement les Macros dans le déguisement?

J'ai été à la programmation en C++ depuis quelques années, et j'ai utilisé de la STL tout à fait un peu et d'avoir créé mon propre template de cours quelques fois pour voir comment c'est fait.

Maintenant je suis en train d'intégrer des modèles plus profondément dans mon OO design, et une pensée lancinante revient à moi: Ils sont juste un des macros, vraiment... Vous avez pu mettre en œuvre (assez MOCHE) auto_ptrs à l'aide de #définit, si vous avez vraiment voulu.

Cette façon de penser sur les modèles m'aide à comprendre comment mon code fonctionne, mais j'ai l'impression que je dois être à côté de l'essentiel en quelque sorte. Les Macros sont destinés mal incarné, mais "modèle de la métaprogrammation" est à la mode.

Alors, quelles SONT les distinctions? et comment peut-modèles d'éviter les dangers que les #define vous mène dans, comme

  • Insondable des erreurs de compilation dans
    des endroits où on ne les attend pas?
  • Code de ballonnements?
  • Difficulté dans la recherche de code?
  • Réglage Débogueur Points D'Arrêt?
  • Pourquoi croyez-vous que le "modèle de la métaprogrammation est à la mode"?
  • Non, ils ne sont pas. 🙂 Et votre question est très chargé, car les modèles d'aide avec aucun des problèmes que vous mentionnez. Au lieu de cela ils aider avec une toute autre classe de problèmes vous avez idéalement de l'ignorer. La question présuppose la réponse, et si j'avais le pouvoir, je serais de l'esprit de les disqualifier pour être subjective et argumentitive.
  • était-ce un commentaire sur cette question, ou de celui qui s'est fusionné avec le mien? Cette agitation plus d'un an-mortes question est en train de faire ma tête...
  • Modèle de la métaprogrammation est fantastique (à la mode) -- au moins je vois une zone portable de la programmation de bas niveau. Les gens ont été en utilisant le préprocesseur(niveau 1) de la méta-programmation depuis le jeton de concaténation en ANSI-C, les possibilités sont infinies avec le C++de mécanisme de template -- c'est à la mode; cependant, nous sommes à court de moyens, et qui met un bémol sur les choses.
InformationsquelleAutor Roddy | 2008-10-07