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
Templates C++
Section 4. Chapitre 2
single

single

Comment Utiliser la Spécialisation de Template

Glissez pour afficher le menu

Syntaxe de la spécialisation de template

Pour comprendre le fonctionnement de la spécialisation de template, il est d'abord nécessaire de saisir ce qui se passe en coulisses lorsqu'un template est appelé avec un type de donnée spécifique.

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

main.cpp

main.cpp

12345678910111213141516
#include <iostream> template<typename T> T TemplateFunction(T value) { return value; } // You can imagine the generated function to look something like this // template<> // int TemplateFunction<int>(int 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'est pas utile de générer plusieurs instances de cette fonction si elle est appelée plusieurs fois avec le même type. Avec cette connaissance, nous pouvons l'utiliser à notre avantage.

main.cpp

main.cpp

123456789101112131415161718192021
#include <iostream> // Primary template template<typename T> T TemplateFunction(T value) { std::cout << "Generic template\n"; return value; } // Template specialization for int template<> int TemplateFunction<int>(int value) { std::cout << "Specialized template for int\n"; return value * 2; // custom behavior } int main() { TemplateFunction<double>(3.14); // uses generic template TemplateFunction<int>(5); // uses specialized version }
Tâche

Glissez pour commencer à coder

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

  • Implémenter une spécialisation pour TemplateFunction afin de traiter différemment les paramètres de type std::string.
  • S'assurer que toute chaîne passée en paramètre ait "Specialized: " ajouté au début de la valeur retournée.

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
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt