Sobes.tech
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ľ"
}