Sobes.tech
Junior — Middle

Pouvez-vous donner un exemple d'utilisation de la spécialisation partielle de modèles en C++?

sobes.tech IA

Réponse de l'IA

La spécialisation partielle de modèles en C++ permet de définir un modèle de classe ou de fonction pour certains types de paramètres, tout en laissant les autres paramètres génériques. Cela est utile lorsque vous souhaitez modifier le comportement du modèle pour certains types sans réécrire toutes les variantes.

Exemple de spécialisation partielle d'un modèle de classe pour les pointeurs :

// Modèle général
template<typename T>
struct TypeInfo {
    static const char* name() { return "Inconnu"; }
};

// Spécialisation partielle pour les pointeurs
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Pointeur"; }
};

// Utilisation
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // Affiche "Inconnu"
    std::cout << TypeInfo<int*>::name() << std::endl;   // Affiche "Pointeur"
}