Junior — Middle
Ar galite pateikti pavyzdį, kaip naudoti dalinę šablonų specializaciją C++?
sobes.tech AI
Atsakymas iš AI
C++ kalboje dalinė šablonų specializacija leidžia apibrėžti klasės ar funkcijos šabloną tam tikriems parametrų tipams, paliekant kitus parametrus bendrus. Tai naudinga, kai norite pakeisti šablono elgesį tam tikriems tipams, neperrašant visų variantų iš naujo.
Pavyzdys, kaip dalinė šablono specializacija taikoma rodyklėms:
// Bendra šablonas
template<typename T>
struct TypeInfo {
static const char* name() { return "Nežinomas"; }
};
// Dalinė specializacija rodyklėms
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Rodyklė"; }
};
// Naudojimas
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // Išves "Nežinomas"
std::cout << TypeInfo<int*>::name() << std::endl; // Išves "Rodyklė"
}