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

C++ में is_pod टेम्पलेट

इस लेख में हम C++ STL में std::is_pod टेम्पलेट के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।

is_pod एक टेम्पलेट है जो <type_traits> हेडर फाइल के अंतर्गत आता है। यह टेम्पलेट जांचता है कि दिया गया टाइप T एक POD (प्लेन-ओल्ड-डेटा) टाइप है या नहीं।

POD (प्लेन ओल्ड डेटा) क्या है?

प्लेन ओल्ड डेटा (POD) टाइप्स वे टाइप्स हैं जो पुरानी C भाषा में भी होते हैं। POD टाइप्स में स्केलर टाइप्स भी शामिल हैं। POD क्लास टाइप वह क्लास टाइप है जो दोनों है, ट्रिवियल (जिसे स्टेटिकली इनिशियलाइज़ किया जा सकता है) और स्टैंडर्ड लेआउट (जो struct और union की तरह सिंपल डेटा स्ट्रक्चर है)।

सिंटैक्स

template <class T> is_pod;

पैरामीटर्स

टेम्पलेट में केवल टाइप T का एक पैरामीटर हो सकता है, और यह जांचता है कि दिया गया टाइप प्लेन ओल्ड डेटा टाइप है या नहीं।

रिटर्न वैल्यू

यह एक बूलियन मान लौटाता है, यदि दिया गया टाइप प्लेन ओल्ड डेटा है तो true, और यदि दिया गया टाइप प्लेन ओल्ड डेटा नहीं है तो false।

उदाहरण

Input: class final_abc{ final_abc(); }; is_pod<final_abc>::value; Output: False
Input: is_pod<int>::value; Output: True

उदाहरण 1

#include <iostream>
#include <type_traits>
using namespace std;

struct TP_1 {
    int var_1;
};
struct TP_2 {
    int var_2;
    private:
    int var_3;
};
struct TP_3 {
    virtual void dummy();
};

int main() {
    cout << boolalpha;
    cout << "checking for is_pod:";
    cout << "\nTP_1: " << is_pod<TP_1>::value;
    cout << "\nTP_2: " << is_pod<TP_2>::value;
    cout << "\nTP_3: " << is_pod<TP_3>::value;
    return 0;
}

आउटपुट

checking for is_pod:
TP_1: true
TP_2: false
TP_3: false

उदाहरण 2

#include <iostream>
#include <type_traits>
using namespace std;

class TP_1 {
    int var_1;
};
class TP_2 {
    int var_2;
    private:
    int var_3;
};
class TP_3 {
    virtual void dummy();
};

int main() {
    cout << boolalpha;
    cout << "checking for is_pod:";
    cout << "\nTP_1: " << is_pod<TP_1>::value;
    cout << "\nTP_2: " << is_pod<TP_2>::value;
    cout << "\nTP_3: " << is_pod<TP_3>::value;
    return 0;
}

आउटपुट

checking for is_pod:
TP_1: true
TP_2: true
TP_3: false
  1. - C++ में fabs() फ़ंक्शन

    C या C++ लाइब्रेरी फ़ंक्शन double fabs(double x) x का निरपेक्ष मान (absolute value) लौटाता है। x एक फ्लोटिंग पॉइंट मान है। यह फ़ंक्शन x का निरपेक्ष मान लौटाता है। fabs() फ़ंक्शन के लिए घोषणा निम्नलिखित है। double fabs(double x) उदाहरण #include <iostream> #include <cmath> using namespac

  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