Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

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 देखता है, तो यह पैरामीटर के रूप में 7 के साथ power का एक इंस्टेंस बनाने का प्रयास करता है, यह पता चलता है कि power<6> भी बनाया जाना चाहिए क्योंकि एन्यूमरेशन कॉन्स्टेंट value का मूल्यांकन कंपाइल टाइम पर होना चाहिए। power<6> के लिए, कंपाइलर को power<5> की आवश्यकता होती है और इसी तरह। अंत में, कंपाइलर funStruct<1>::value का उपयोग करता है और कंपाइल टाइम रिकर्सन समाप्त होती है। इसे टेम्पलेट मेटाप्रोग्रामिंग कहा जाता है।


  1. - C++ का उपयोग करके पावर (pow) फंक्शन लिखें

    पावर फंक्शन का उपयोग दो संख्याओं बेस और एक्सपोनेंट दिए जाने पर पावर खोजने के लिए किया जाता है। परिणाम बेस का एक्सपोनेंट की पावर होता है। एक उदाहरण जो इसे प्रदर्शित करता है वह निम्नलिखिक है − बेस = 2 एक्सपोनेंट = 5 2^5 = 32 इसलिए, 2 की पावर 5 है 32। C++ में पावर फंक्शन को प्रदर्शित करने वाला एक

  1. - C++ में expm1() फ़ंक्शन

    expm1() फ़ंक्शन का उपयोग किसी भी संख्या की घात में एक्सपोनेंशियल घटा एक की गणना के लिए किया जाता है। यह (e की घात a) - 1 का मान लौटाता है। गणितीय अभिव्यक्ति expm1(a) = (e^a) - 1 C++ में सिंटैक्स float expm1(variable_name); पैरामीटर्स: variable_name - जिस वेरिएबल का मान गणना किया जाना है, उसे दिय

  1. - C++ में log1p() फ़ंक्शन

    log1p() फ़ंक्शन का उपयोग किसी भी संख्या a के लिए (a+1) के नेचुरल लॉगरिदम (आधार e लॉगरिदम) की गणना के लिए किया जाता है। यह (a+1) के नेचुरल लॉगरिदम का मान लौटाता है। जब हम -1 से कम मान पास करते हैं तो यह NaN (नॉट ए नंबर) लौटाता है। गणितीय अभिव्यक्ति log1p(a) = base-e log(a+1) C++ में सिंटैक्स float