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

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


যখন আমরা টেমপ্লেট ব্যবহার করে কম্পাইল টাইমে কম্পিউটেশন করার প্রোগ্রাম লিখি, তাকে টেমপ্লেট মেটাপ্রোগ্রামিং বলে।

উদাহরণ কোড

#include <iostream> 
using namespace std; 
template<int n> struct power { 
    enum { value = 4 * power<n-1>::value }; 
}; 
template<> struct power<0> { 
    enum { value = 1 }; 
}; 
int main() { 
    cout << "power is: " << power<7>::value << endl; 
    return 0; 
}

আউটপুট

power is: 16384

উপরের উদাহরণে, কম্পাইলার যখন power<7>::value দেখে, এটি প্যারামিটার ৭ দিয়ে power-এর একটি ইনস্ট্যান্স তৈরি করার চেষ্টা করে, এতে বের হয় power<6>-ও তৈরি করতে হবে কারণ enum কনস্ট্যান্ট value কম্পাইল টাইমে ইভ্যালুয়েট হতে হবে। power<6>-এর জন্য কম্পাইলার power<5> দরকার এবং এভাবে চলে। अन्तে কম্পাইলার funStruct<1>::value ব্যবহার করে এবং কম্পাইল-টাইম রিকার্শন টার্মিনেট হয়। এটাকে টেমপ্লেট মেটাপ্রোগ্রামিং বলে।


  1. C++-এ fabs() ফাংশন

  2. C++-এ পাওয়ার (pow) ফাংশন লিখুন

  3. C++-এ expm1() ফাংশন

  4. C++-এ log1p() ফাংশন