Junior — Middle
Vai varat sniegt piemēru par daļēju šablonu specializāciju C++?
sobes.tech AI
Atbilde no AI
C++ šablonu daļēja specializācija ļauj definēt klases vai funkcijas šablonu noteiktiem parametru tipiem, atstājot pārējos parametrus kopīgus. Tas ir noderīgi, ja vēlaties mainīt šablona uzvedību dažiem tipiem, nepārrakstot visas variācijas pilnībā.
Piemērs ar daļēju specializāciju uzrādītājiem:
// Vispārīgs šablons
template<typename T>
struct TypeInfo {
static const char* name() { return "Nezināms"; }
};
// Daļēja specializācija uzrādītājiem
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Rādītājs"; }
};
// Izmantošana
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // Izdrukās "Nezināms"
std::cout << TypeInfo<int*>::name() << std::endl; // Izdrukās "Rādītājs"
}