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

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

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

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

यह टेम्पलेट is_rvalue और is_lvalue का संयोजन है और जांचता है कि यदि उनमें से कोई भी सत्य है, तो is_reference का परिणाम भी सत्य होगा।

C++ में रेफरेंस क्या है?

एक रेफरेंस पहले से मौजूद वेरिएबल का एक उपनाम या दूसरा नाम है। एक रेफरेंस पॉइंटर से भिन्न होता है -

  • हम रेफरेंस को null सेट नहीं कर सकते लेकिन पॉइंटर null पॉइंटर हो सकता है।
  • एक बार रेफरेंस किसी ऑब्जेक्ट के लिए इनिशियलाइज़ हो जाने पर इसे बदला नहीं जा सकता। पॉइंटर्स किसी भी समय किसी अन्य ऑब्जेक्ट को इंगित कर सकते हैं।
  • रेफरेंस को बनाते समय इनिशियलाइज़ किया जाना चाहिए, जबकि पॉइंटर को बनाने के बाद बाद में इनिशियलाइज़ किया जा सकता है।

रेफरेंस को एम्परसैंड (&) सिंबल का उपयोग करके घोषित किया जा सकता है जो उस वेरिएबल से पहले आता है जिसे हम रेफर करना चाहते हैं।

सिंटैक्स

template <class T> is_reference;

पैरामीटर्स

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

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

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

उदाहरण

Input: is_reference<int>::value; Output: False
Input: is_reference<int&>::value; Output: True

उदाहरण 1

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

class TP { };

int main() {
    cout << boolalpha;
    cout << "Checking for is_reference: ";
    cout << "\n class TP : " << is_reference<TP>::value;
    cout << "\n class TP&: " << is_polymorphic<TP&>::value;
    cout << "\n class TP&&: " << is_polymorphic<TP&&>::value;
    return 0;
}

आउटपुट

Checking for is_reference:
class TP : false
class TP&: false
class TP&&: false

उदाहरण 2

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

int main() {
    cout << boolalpha;
    cout << "Checking for is_reference: ";
    cout << "\n int: " << is_reference<int>::value;
    cout << "\n int&: " << is_reference<int&>::value;
    cout << "\n int&&: " << is_reference<int&&>::value;
    // char
    cout << "\n char: " << is_reference<char>::value;
    cout << "\n char&: " << is_reference<char&>::value;
    cout << "\n char&&: " << is_reference<char&&>::value;
    // float
    cout << "\n float: " << is_reference<float>::value;
    cout << "\n float&: " << is_reference<float&>::value;
    cout << "\n float&&: " << is_reference<float&&>::value;
    // double
    cout << "\n double: " << is_reference<double>::value;
    cout << "\n double&: " << is_reference<double&>::value;
    cout << "\n double&&: " << is_reference<double&&>::value;
    return 0;
}

आउटपुट

Checking for is_reference:
int: false
int&: true
int&&: true
char: false
char&: true
char&&: true
float: false
float&: true
float&&: true
double: false
double&: true
double&&: true
  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