কম্পিউটার

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


C++ এ, টেমপ্লেটগুলি সাধারণ ফাংশন এবং ক্লাস তৈরি করতে ব্যবহৃত হয়। তাই আমরা যেকোনো ধরনের ডেটা যেমন int, char, float, অথবা কিছু ব্যবহারকারীর সংজ্ঞায়িত ডেটাও টেমপ্লেট ব্যবহার করে ব্যবহার করতে পারি।

এই বিভাগে, আমরা দেখব কিভাবে টেমপ্লেট স্পেশালাইজেশন ব্যবহার করতে হয়। তাই এখন আমরা বিভিন্ন ধরণের ডেটার জন্য কিছু সাধারণীকৃত টেমপ্লেট সংজ্ঞায়িত করতে পারি। এবং বিশেষ ধরনের ডেটার জন্য কিছু বিশেষ টেমপ্লেট ফাংশন। আসুন আরও ভাল ধারণা পেতে কিছু উদাহরণ দেখি।

উদাহরণ কোড

#include<iostream>
using namespace std;
template<typename T>
void my_function(T x) {
   cout << "This is generalized template: The given value is: " << x << endl;
}
template<>
void my_function(char x) {
   cout << "This is specialized template (Only for characters): The given value is: " << x << endl;
}
main() {
   my_function(10);
   my_function(25.36);
   my_function('F');
   my_function("Hello");
}

আউটপুট

This is generalized template: The given value is: 10
This is generalized template: The given value is: 25.36
This is specialized template (Only for characters): The given value is: F
This is generalized template: The given value is: Hello

ক্লাসের জন্য টেমপ্লেট বিশেষীকরণও তৈরি করা যেতে পারে। সাধারণীকৃত শ্রেণী এবং বিশেষায়িত শ্রেণী তৈরি করে একটি উদাহরণ দেখা যাক।

উদাহরণ কোড

#include<iostream>
using namespace std;
template<typename T>
class MyClass {
   public:
      MyClass() {
         cout << "This is constructor of generalized class " << endl;
      }
};
template<>
class MyClass <char>{
   public:
      MyClass() {
         cout << "This is constructor of specialized class (Only for characters)" << endl;
      }
};
main() {
   MyClass<int> ob_int;
   MyClass<float> ob_float;
   MyClass<char> ob_char;
   MyClass<string> ob_string;
}

আউটপুট

This is constructor of generalized class
This is constructor of generalized class
This is constructor of specialized class (Only for characters)
This is constructor of generalized class

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

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

  3. C++ প্রোগ্রামে টেমপ্লেট স্পেশালাইজেশন?

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