Sobes.tech
Junior — Middle

Puoi fare un esempio di utilizzo della specializzazione parziale di template in C++?

sobes.tech AI

Risposta dell'AI

La specializzazione parziale dei modelli in C++ consente di definire un modello di classe o funzione per tipi di parametri specifici, lasciando gli altri parametri generici. Questo è utile quando si desidera modificare il comportamento del modello per alcuni tipi senza riscrivere tutte le varianti.

Esempio di specializzazione parziale di un modello di classe per i puntatori:

// Modello generale
template<typename T>
struct TypeInfo {
    static const char* name() { return "Sconosciuto"; }
};

// Specializzazione parziale per i puntatori
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Puntatore"; }
};

// Uso
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // Stampa "Sconosciuto"
    std::cout << TypeInfo<int*>::name() << std::endl;   // Stampa "Puntatore"
}