/ / C ++, le terme / idiome pour programmer en utilisant template - c ++, templates, idiomes, terme

C ++, le terme / idiome pour programmer en utilisant template - c ++, templates, idiomes, terme

Je continue à lire le terme:

  1. programmation par modèle
  2. programmation générique
  3. méta-programmation
  4. peut-être un autre idiome / terme ..

pour tout code c ++ utilisant template, lequel est le terme correct ou plus précis?

Réponses:

15 pour la réponse № 1

AUTANT QUE JE SACHE:

  1. Programmation de modèles</ strong> fait simplement référence à la "programmation avec modèles" classique, c’est-à-dire "j’ai une fonction / classe que je veux rendre utilisable avec n’importe quel type, je" vais juste le rendre modèle ".

    Cela peut aussi être vu comme la catégorie "fourre-tout" qui inclut toute technique de programmation qui utilise des modèles.

  2. Programmation générique</ strong> peut être décrit synthétiquement comme le paradigme de programmation utilisé par la STL.

    Wikipedia le définit comme

    un style de programmation informatique dans lequel les algorithmes sont écrits en termes de types à spécifier ultérieurement, qui sont ensuite instanciés lorsque cela est nécessaire pour des types spécifiques fournis en tant que paramètres

    IMHO, il vaut mieux dire que tous les conteneurssont conçus pour être utilisés avec n’importe quel type (sans sacrifier la sécurité du type) et les algorithmes sont conçus pour être assez génériques pour fonctionner avec n’importe quel type de conteneur (tant que c’est raisonnable de les utiliser, évidemment, conteneur non ordonné).

    Remarquerez que programmation générique (avec cette définition) ne nécessite pas strictement l’utilisation de modèles, c’est un héritage et un polymorphisme dynamique qui permettent de le réalisergrâce à Ben Voigt).

    En général, je dirais que programmation par modèle et programmation générique se chevauchent partiellement, et beaucoup de gens utilisent les termes programmation générique et programmation par modèle de façon interchangeable.

  3. Métaprogrammation des templates</ strong> est un style de programmation dans lequel les modèles sontutilisé pour effectuer des calculs / décisions / vérifications à la compilation, normalement impossible à réaliser sans modèles (assertions statiques, calculs de constantes à la compilation, ...)

    Un tel code est souvent assez artificiel, puisque C ++n’a pas été conçu pour ce style de programmation (qui a en fait été "découvert" plus tard), et peut paraître étrange aux programmeurs C ++ également parce qu’il se rapproche souvent de la programmation fonctionnelle (sans disposer de fonctions de syntaxe intéressantes) au lieu de suivre le paradigme impératif normalement utilisé en C ++.


2 pour la réponse № 2

C'est généralement appelé programmation générique.

Modèle méta La programmation est autre chose que l'utilisation normale de modèles. Dans TMP, les types sont manipulés au moment de la compilation (voir boost.Mpl).