Maison > Article > développement back-end > Pourquoi C ne peut-il pas gérer les paramètres du modèle de modèle ?
Comprendre les paramètres de modèle de modèle
Dans le domaine du C, les paramètres de modèle de modèle présentent un défi pour certains programmeurs. Dissipons une idée fausse courante :
Idée fausse :
Dans l'extrait de code ci-dessous, qu'est-ce qui empêche C de considérer Z comme une autre classe basée sur un modèle plutôt que comme un paramètre basé sur un modèle ?
<code class="cpp">template<class T> class B {}; // Templated class template<template<class X> class Z = B> // Line in question class BB{};</code>
Explication :
Les paramètres du modèle de modèle se comportent de la même manière que les paramètres de type de modèle normaux. Cependant, ils n'acceptent pas les types concrets ; au lieu de cela, ils acceptent eux-mêmes les modèles. Voici une compréhension simplifiée :
Dans l'exemple, le modèle de syntaxe classe Z = B> définit un paramètre de type basé sur un modèle Z qui attend une classe de modèle avec un paramètre de modèle X.
Paramètres du modèle de modèle (pas possible)
Il est important de noter que le modèle de modèle les paramètres de modèle ne sont pas possibles en C . Il s'agit d'une décision de conception prise par le comité de normalisation pour simplifier la mise en œuvre du compilateur.
Analogie : fonctions et pointeurs de fonction
Pour une meilleure compréhension, faites des parallèles avec les fonctions et la fonction pointeurs :
De même, les paramètres de modèle de modèle acceptent des modèles (arguments) qui acceptent des arguments.
Exemple et cas d'utilisation
Bien que les paramètres de modèle de modèle ne soient pas possibles, Imaginons une situation dans laquelle ils pourraient être utiles :
Supposons que nous souhaitions créer une bibliothèque générique de recherche de graphiques avec des algorithmes qui fonctionnent sur différents types de piles ou de files d'attente, qui peuvent à leur tour être implémentées avec différents types de conteneurs. Un paramètre de modèle de modèle de modèle pourrait nous permettre de spécifier tous ces aspects dans un seul appel de fonction. Cependant, comme les paramètres du modèle de modèle ne sont pas disponibles, ce cas d'utilisation reste un exemple hypothétique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!