Junior — Middle
Kunt u een voorbeeld geven van het gebruik van gedeeltelijke specialisatie van sjablonen in C++?
sobes.tech AI
Antwoord van AI
Partiële specialisatie van sjablonen in C++ stelt je in staat om een klasse- of functiemodel te definiëren voor bepaalde parameter types, terwijl de andere parameters algemeen blijven. Dit is handig wanneer je het gedrag van het model voor bepaalde types wilt aanpassen zonder alle varianten volledig te herschrijven.
Voorbeeld van partiële specialisatie van een klasse sjabloon voor pointers:
// Algemene sjabloon
template<typename T>
struct TypeInfo {
static const char* name() { return "Onbekend"; }
};
// Partiële specialisatie voor pointers
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Pointer"; }
};
// Gebruik
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // Drukt "Onbekend" af
std::cout << TypeInfo<int*>::name() << std::endl; // Drukt "Pointer" af
}