Sobes.tech
Junior — Middle

C++ da shablonlarning qisman ixtisoslashuvining misolini keltira olasizmi?

sobes.tech AI

AIdan javob

C++ da'vo shablonlarining qisman ixtisoslashuvi shablon sinfi yoki funktsiya uchun parametr turlarini belgilashga imkon beradi, qolgan parametrlar umumiy bo'lib qoladi. Bu, ba'zi turlar uchun shablonning xulqini o'zgartirish kerak bo'lsa, barcha variantlarni to'liq yozib chiqmasdan foydalidir.

Poydevor uchun ko'rsatkichlar uchun shablon sinfining qisman ixtisoslashuvi misoli:

// Umumiy shablon

template<typename T>
struct TypeInfo {
    static const char* name() { return "Noma'lum"; }
};

// Ko'rsatkichlar uchun qisman ixtisoslashuv

template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Ko'rsatkich"; }
};

// Foydalanish
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // "Noma'lum" chiqaradi
    std::cout << TypeInfo<int*>::name() << std::endl;   // "Ko'rsatkich" chiqaradi
}