Junior — Middle
Môžete uviesť príklad použitia čiastočnej špecializácie šablón v C++?
sobes.tech AI
Odpoveď od AI
Čiastočná šablónová špecializácia v C++ umožňuje definovať šablónu triedy alebo funkcie pre určité typy parametrov, pričom ostatné parametre zostávajú všeobecné. To je užitočné, keď chcete zmeniť správanie šablóny pre niektoré typy bez úplného prepísania všetkých variantov.
Príklad čiastočnej šablónovej špecializácie pre ukazovatele:
// Všeobecná šablóna
template<typename T>
struct TypeInfo {
static const char* name() { return "Neznámy"; }
};
// Čiastočná špecializácia pre ukazovatele
template<typename T>
struct TypeInfo<T*> {
static const char* name() { return "Ukazovateľ"; }
};
// Použitie
#include <iostream>
int main() {
std::cout << TypeInfo<int>::name() << std::endl; // Vytlačí "Neznámy"
std::cout << TypeInfo<int*>::name() << std::endl; // Vytlačí "Ukazovateľ"
}