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

सी++ में is_scalar टेम्पलेट

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

is_scalar एक टेम्प्लेट है जो हेडर फ़ाइल के अंतर्गत आता है। इस टेम्पलेट का उपयोग यह जांचने के लिए किया जाता है कि दिया गया प्रकार T एक अदिश प्रकार है या नहीं

यह टेम्पलेट is_arithmetic, is_pointer, is_enum, is_member_pointer या is_same का एक संयोजन है और यह जांचता है कि दोनों में से कोई एक सत्य है या नहीं, is_scalar का परिणाम भी सत्य होगा।

C++ में एक अदिश प्रकार क्या है?

अदिश प्रकार वह वस्तु है जो न तो वर्ग प्रकार है और न ही सरणी प्रकार। एक अदिश प्रकार एक प्रकार है जिसमें बिना किसी ओवरलोडिंग के अतिरिक्त ऑपरेटर के लिए अंतर्निहित कार्यक्षमता होती है।

सिंटैक्स

template <class T> is_scalar;

पैरामीटर

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

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

यह एक बूलियन मान देता है, यदि दिया गया प्रकार एक अदिश प्रकार है, तो सत्य है, और यदि दिया गया प्रकार एक अदिश प्रकार नहीं है, तो यह गलत है।

उदाहरण

Input: is_scalar<int>::value;
Output: True

Input: is_scalar<A>::value; //assuming A is an object of a class.
Output: False

उदाहरण

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   class TP {
   };
   cout << boolalpha;
   cout << "checking for is_scalar: ";
   cout << "\nint(TP::*): "<< is_scalar<int(TP::*)>::value;
   cout << "\nint *: "<< is_scalar<int*>::value;
   cout << "\nbool: "<< is_scalar<bool>::value;
   cout << "\nint(int): "<< is_scalar<int(int)>::value;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

checking for is_scalar:
int(TP::*): true
int *: true
bool: true
int(int): false

उदाहरण

#include <iostream>
#include <type_traits>
using namespace std;
int main() {
   class TP {
   };
   enum class TP_1 {
      var_1,
      var_2,
      var_3,
      var4
   };
   cout << boolalpha;
   cout << "checking for is_scalar: ";
   cout << "\nTP : "<< is_scalar<int(TP)>::value;
   cout << "\nTP_1: "<< is_scalar<TP_1>::value;
   cout << "\nint[10] "<< is_scalar<int[10]>::value;
   cout << "\nint&: "<< is_scalar<int&>::value;
   cout << "\nchar&: "<< is_scalar<char&>::value;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

checking for is_scalar:
TP : false
TP_1: true
int[10] false
int&: false
char&: false

  1. C++ में कनवर्ज़न टाइप करें

    यहां हम देखेंगे कि C++ में किस प्रकार की रूपांतरण तकनीकें मौजूद हैं। रूपांतरण मुख्यतः दो प्रकार के होते हैं। निहित और स्पष्ट। निहित प्रकार का रूपांतरण इसे स्वचालित प्रकार के रूपांतरण के रूप में भी जाना जाता है। यह संकलक द्वारा उपयोगकर्ता से किसी बाहरी ट्रिगर के बिना किया जाता है। यह तब किया जाता

  1. सी ++ में टेम्पलेट विशेषज्ञता

    सी ++ में, टेम्प्लेट का उपयोग सामान्यीकृत कार्यों और कक्षाओं को बनाने के लिए किया जाता है। इसलिए हम किसी भी प्रकार के डेटा का उपयोग कर सकते हैं जैसे int, char, float, या कुछ उपयोगकर्ता परिभाषित डेटा भी टेम्प्लेट का उपयोग करके। इस खंड में, हम देखेंगे कि टेम्पलेट विशेषज्ञता का उपयोग कैसे करें। तो अब

  1. C++ में Inference टाइप करें

    टाइप अनुमान या कटौती एक प्रोग्रामिंग भाषा में डेटा प्रकार के एक अभिव्यक्ति की स्वचालित पहचान को संदर्भित करता है। यह कुछ दृढ़ता से टाइप की गई भाषाओं में मौजूद एक विशेषता है। सी ++ में, ऑटो कीवर्ड (सी ++ 11 में जोड़ा गया) का उपयोग स्वचालित प्रकार की कटौती के लिए किया जाता है। उदाहरण के लिए, आप एक वेक