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"
}