কম্পিউটার টিউটোরিয়াল

C++-এ টেমপ্লেট স্পেশালাইজেশন

C++-এ টেমপ্লেট ব্যবহার করে জেনেরিক ফাংশন ও ক্লাস লিখা যায়। টেমপ্লেট স্পেশালাইজেশন দিয়ে কোনো নির্দিষ্ট টাইপের জন্য আলাদা বাস্তবায়ন (implementation) দেওয়া যায়।

ফাংশন টেমপ্লেট স্পেশালাইজেশন

#include <iostream>
using namespace std;

// জেনেরিক টেমপ্লেট
template<typename T>
void my_function(T x) {
    cout << "Generalized template: " << x << endl;
}

// char টাইপের জন্য স্পেশালাইজেশন
template<>
void my_function(char x) {
    cout << "Specialized for char: " << x << endl;
}

int main() {
    my_function(10);
    my_function(25.36);
    my_function('F');
    my_function("Hello");
    return 0;
}

আউটপুট

Generalized template: 10
Generalized template: 25.36
Specialized for char: F
Generalized template: Hello

ক্লাস টেমপ্লেট স্পেশালাইজেশন

#include <iostream>
using namespace std;

// জেনেরিক ক্লাস
template<typename T>
class MyClass {
public:
    MyClass() { cout << "Generalized class constructor" << endl; }
};

// char-এর জন্য স্পেশালাইজড ক্লাস
template<>
class MyClass<char> {
public:
    MyClass() { cout << "Specialized class (char) constructor" << endl; }
};

int main() {
    MyClass<int> ob_int;
    MyClass<float> ob_float;
    MyClass<char> ob_char;
    MyClass<string> ob_string;
    return 0;
}

আউটপুট

Generalized class constructor
Generalized class constructor
Specialized class (char) constructor
Generalized class constructor

ব্যবহার: নির্দিষ্ট টাইপের জন্য অপ্টিমাইজড বা আলাদা লজিক লিখতে স্পেশালাইজেশন ব্যবহার করা হয়।

  1. C++-এ is_fundamental টেমপ্লেট

  2. C++-এ is_final টেমপ্লেট

  3. C++-এ টেমপ্লেট স্পেশালাইজেশন

  4. C++-এ টেমপ্লেট মেটাপ্রোগ্রামিং