Sobes.tech
Junior — Middle

C++-da şablonların qismən ixtisaslaşmasının nümunəsini göstərə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

C++ dilində qismən şablon ixtisoslaşması, şablon sinfi və ya funksiyanın müəyyən parametrlər üçün şablonunu təyin etməyə imkan verir, digər parametrlər isə ümumi qalır. Bu, bəzi tiplər üçün şablonun davranışını dəyişdirmək istədiyiniz zaman bütün variantları tamamilə yenidən yazmadan faydalıdır.

İşarçilər üçün sinif şablonunun qismən ixtisoslaşması nümunəsi:

// Ümumi şablon
template<typename T>
struct TypeInfo {
    static const char* name() { return "Naməlum"; }
};

// İşarçilər üçün qismən ixtisoslaşma
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "İşarəçi"; }
};

// İstifadə
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // "Naməlum" çıxarır
    std::cout << TypeInfo<int*>::name() << std::endl;   // "İşarəçi" çıxarır
}