इस लेख में हम C++ STL में काम करने, वाक्य रचना और std::is_class टेम्पलेट के उदाहरणों पर चर्चा करेंगे।
is_class टेम्प्लेट का उपयोग यह जांचने के लिए किया जाता है कि क्या परिभाषित प्रकार किसी अन्य प्रकार का नहीं वर्ग प्रकार है।
कक्षा क्या है?
एक वर्ग एक उपयोगकर्ता परिभाषित डेटा प्रकार या डेटा संरचना है जिसमें कुछ डेटा सदस्य या सदस्य फ़ंक्शन होते हैं जिन्हें 'वर्ग' कीवर्ड के साथ घोषित किया जाता है।
उदाहरण
class abc { int data_members; void member_function(); };
इसलिए, is_class टेम्प्लेट जाँचता है कि टाइप T एक वर्ग है, और उसी के अनुसार बूलियन मान को सही या गलत लौटाता है।
सिंटैक्स
template <class T> is_class;
पैरामीटर
टेम्प्लेट में केवल T प्रकार का पैरामीटर हो सकता है, और जांच सकता है कि दिया गया प्रकार एक वर्ग है या नहीं।
रिटर्न वैल्यू
यह एक बूलियन मान देता है, यदि दिया गया प्रकार एक वर्ग है, तो सत्य है, और यदि दिया गया प्रकार एक वर्ग नहीं है, तो यह गलत है।
उदाहरण
Input: class abc { }; is_class<abc>::value; Output: True Input: union abc { }; is_class<abc>::value; Output: False
उदाहरण
#include <iostream> #include <type_traits> using namespace std; class TP_1 { }; union TP_2 { int var_1; float var_2; }; int main() { cout << boolalpha; cout << "checking for is_class template: "; cout << "\nTP_1 class : "<<is_class<TP_1>::value; cout << "\nTP_2 union : "<< is_class<TP_2>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
checking for is_class template: TP_1 class : true TP_2 union : false
उदाहरण
#include <iostream> #include <type_traits> using namespace std; class TP_1 { int var_1; float var_2; char var_3; }; union TP_2 { int var_1; float var_2; char var_3; }; struct TP_3 { int var_1; float var_2; char var_3; }; int main() { cout << boolalpha; cout << "checking for is_class template: "; cout << "\nTP_1 class : "<<is_class<TP_1>::value; cout << "\nTP_2 union : "<< is_class<TP_2>::value; cout << "\nTP_3 structure : "<< is_class<TP_3>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
checking for is_class template: TP_1 class : true TP_2 union : false TP_3 structure : true