Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Comment Utiliser la Spécialisation de Template | Spécialisation de Template
Modèles C++
course content

Contenu du cours

Modèles C++

Modèles C++

1. Création du Premier Modèle
2. Utilisation des Templates
3. Modèles de Classe
4. Spécialisation de Template

book
Comment Utiliser la Spécialisation de Template

Syntaxe de la spécialisation de modèle

Pour comprendre comment fonctionne la spécialisation de modèle, nous devons d'abord saisir ce qui se passe en coulisses lorsqu'un modèle est appelé avec un type de données spécifique.

Lorsque vous appelez une fonction modèle avec un type particulier, le compilateur génère une instance concrète du modèle pour ce type. Ce processus est appelé instanciation de modèle. Essentiellement, le compilateur substitue le paramètre du modèle par le type fourni et crée une version spécialisée de la fonction.

cpp

main

h

header

copy
123456789101112
#include <iostream> template<typename T> T TemplateFunction(T value) { return value; } int main() { // When the compiler encounters this line // It generates a function for the specified type // VVV TemplateFunction<int>(5); }

Mais d'abord, il vérifie si une substitution pour cette fonction existe déjà. Il n'y a aucun intérêt à générer plusieurs instances de cette fonction si elle est appelée avec le même type à plusieurs reprises. Avec cette connaissance, nous pouvons l'utiliser à nos fins.

Tâche

Swipe to start coding

Créez une spécialisation de modèle pour le TemplateFunction qui gère les types de données std::string.

  1. Implémentez une spécialisation pour TemplateFunction afin de traiter les paramètres std::string différemment.
  2. Assurez-vous que toute chaîne passée en paramètre ait "Specialized: " ajouté au début de la valeur retournée.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
toggle bottom row

book
Comment Utiliser la Spécialisation de Template

Syntaxe de la spécialisation de modèle

Pour comprendre comment fonctionne la spécialisation de modèle, nous devons d'abord saisir ce qui se passe en coulisses lorsqu'un modèle est appelé avec un type de données spécifique.

Lorsque vous appelez une fonction modèle avec un type particulier, le compilateur génère une instance concrète du modèle pour ce type. Ce processus est appelé instanciation de modèle. Essentiellement, le compilateur substitue le paramètre du modèle par le type fourni et crée une version spécialisée de la fonction.

cpp

main

h

header

copy
123456789101112
#include <iostream> template<typename T> T TemplateFunction(T value) { return value; } int main() { // When the compiler encounters this line // It generates a function for the specified type // VVV TemplateFunction<int>(5); }

Mais d'abord, il vérifie si une substitution pour cette fonction existe déjà. Il n'y a aucun intérêt à générer plusieurs instances de cette fonction si elle est appelée avec le même type à plusieurs reprises. Avec cette connaissance, nous pouvons l'utiliser à nos fins.

Tâche

Swipe to start coding

Créez une spécialisation de modèle pour le TemplateFunction qui gère les types de données std::string.

  1. Implémentez une spécialisation pour TemplateFunction afin de traiter les paramètres std::string différemment.
  2. Assurez-vous que toute chaîne passée en paramètre ait "Specialized: " ajouté au début de la valeur retournée.

Solution

cpp

solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt