Sobes.tech
Junior — Middle

Можете ли да дате пример коришћења делимичне специјализације шаблона у C++?

sobes.tech АИ

Одговор од АИ

Делимична специјализација шаблона у C++ омогућава дефинисање шаблона класе или функције за одређене типове параметара, остављајући остале параметре општим. Ово је корисно када желите да промените понашање шаблона за одређене типове без потпуног преписања свих варијанти.

Пример делимичне специјализације шаблона класе за показиваче:

// Општи шаблон
template<typename T>
struct TypeInfo {
    static const char* name() { return "Непознат"; }
};

// Делимична специјализација за показиваче
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Показивач"; }
};

// Коришћење
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // Исписује "Непознат"
    std::cout << TypeInfo<int*>::name() << std::endl;   // Исписује "Показивач"
}