Sobes.tech
Junior — Middle

Můžete uvést příklad použití částečné specializace šablon v C++?

sobes.tech AI

Odpověď od AI

Částečná specializace šablon v C++ umožňuje definovat šablonu třídy nebo funkce pro určité typy parametrů, zatímco ostatní parametry zůstávají obecné. To je užitečné, když chcete změnit chování šablony pro některé typy, aniž byste museli kompletně přepisovat všechny varianty.

Příklad částečné specializace šablony třídy pro ukazatele:

// Obecná šablona
template<typename T>
struct TypeInfo {
    static const char* name() { return "Neznámý"; }
};

// Částečná specializace pro ukazatele
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Ukazatel"; }
};

// Použití
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // Vytiskne "Neznámý"
    std::cout << TypeInfo<int*>::name() << std::endl;   // Vytiskne "Ukazatel"
}