Junior — Middle
Puteți oferi un exemplu de utilizare a specializării parțiale a șabloanelor în C++?
sobes.tech AI
Răspuns de la AI
Specializarea parțială a șabloanelor în C++ permite definirea unui model de clasă sau funcție pentru anumite tipuri de parametri, lăsând ceilalți parametri generici. Acest lucru este util atunci când doriți să modificați comportamentul modelului pentru anumite tipuri fără a rescrie toate variantele.
Exemplu de specializare parțială a unui model de clasă pentru pointeri:
// Model general
template<typename T>
struct TypeInfo {
static const char* name() { return "Necunoscut"; }
};
// Specializare parțială pentru pointeri
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Pointer"; }
};
// Utilizare
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // Afișează "Necunoscut"
std::cout << TypeInfo<int*>::name() << std::endl; // Afișează "Pointer"
}