Sobes.tech
Junior — Middle

C++'ta şablonların kısmi uzmanlaşmasının kullanımına bir örnek verebilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

C++ dilinde kısmi şablon uzmanlaşması, diğer parametreleri genel bırakırken belirli parametre türleri için sınıf veya fonksiyon şablonunu tanımlamaya olanak tanır. Bu, tüm varyantları tamamen yeniden yazmadan bazı türler için şablonun davranışını değiştirmek istediğinizde faydalıdır.

İşte işaretçiler için sınıf şablonunun kısmi uzmanlaşması örneği:

// Genel şablon
template<typename T>
struct TypeInfo {
    static const char* name() { return "Bilinmiyor"; }
};

// İşaretçiler için kısmi uzmanlaşma
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "İşaretçi"; }
};

// Kullanım
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // "Bilinmiyor" yazdırır
    std::cout << TypeInfo<int*>::name() << std::endl;   // "İşaretçi" yazdırır
}