Junior — Middle
Können Sie ein Beispiel für die Verwendung von partielle Spezialisierung von Templates in C++ geben?
sobes.tech KI
Antwort von AI
Die partielle Spezialisierung von Templates in C++ ermöglicht es, eine Klassen- oder Funktionsvorlage für bestimmte Parametertypen zu definieren, während die anderen Parameter allgemein bleiben. Dies ist nützlich, wenn das Verhalten der Vorlage für bestimmte Typen geändert werden soll, ohne alle Varianten vollständig neu zu schreiben.
Beispiel für eine partielle Spezialisierung einer Klassenvorlage für Zeiger:
// Allgemeine Vorlage
template<typename T>
struct TypeInfo {
static const char* name() { return "Unbekannt"; }
};
// Partielle Spezialisierung für Zeiger
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Zeiger"; }
};
// Verwendung
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // Gibt "Unbekannt" aus
std::cout << TypeInfo<int*>::name() << std::endl; // Gibt "Zeiger" aus
}