इस लेख में हम सी++ एसटीएल में काम करने, वाक्य रचना और std::is_empty टेम्पलेट के उदाहरणों पर चर्चा करेंगे।
is_empty एक टेम्प्लेट है जो
खाली कक्षा क्या है?
एक वर्ग को खाली के रूप में जाना जाता है, जब किसी वर्ग में कोई डेटा संग्रहीत नहीं होता है। खाली वर्ग निम्नलिखित को संतुष्ट करता है -
- लंबाई 0 के बिट फ़ील्ड के अलावा कोई गैर-स्थिर सदस्य नहीं होना चाहिए।
- कोई वर्चुअल बेस क्लास या वर्चुअल फ़ंक्शन नहीं होना चाहिए।
- कोई आधार वर्ग नहीं होना चाहिए।
सिंटैक्स
template <class T>is_empty;
पैरामीटर
टेम्पलेट में केवल कक्षा T का पैरामीटर हो सकता है, और जाँच कर सकता है कि कक्षा T एक खाली वर्ग है या नहीं।
रिटर्न वैल्यू
यह एक बूलियन मान लौटाता है, यदि दिया गया प्रकार एक खाली वर्ग है, तो सत्य है, और यदि दिया गया प्रकार खाली वर्ग नहीं है, तो यह गलत है।
उदाहरण
Input: class A{}; is_empty<A>::value; Output: true Input: class B{ void fun() {} }; is_empty<B>::value; Output: true
उदाहरण
#include <iostream> #include <type_traits> using namespace std; class TP_1 { }; class TP_2 { int var; }; class TP_3 { static int var; }; class TP_4 { ~TP_4(); }; int main() { cout << boolalpha; cout << "checking for is_empty template for a class with no variable: "<< is_empty<TP_1>::value; cout <<"\nchecking for is_empty template for a class with one variable: "<< is_empty<TP_2>::value; cout <<"\nchecking for is_empty template for a class with one static variable: "<< is_empty<TP_3>::value; cout <<"\nchecking for is_empty template for a class with constructor: "<< is_empty<TP_4>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
checking for is_empty template for a class with no variable: true checking for is_empty template for a class with one variable: false checking for is_empty template for a class with one static variable: true checking for is_empty template for a class with constructor: true
उदाहरण
#include <iostream> #include <type_traits> using namespace std; struct TP_1 { }; struct TP_2 { int var; }; struct TP_3 { static int var; }; struct TP_4 { ~TP_4(); }; int main() { cout << boolalpha; cout << "checking for is_empty template for a structure with no variable: "<< is_empty<TP_1>::value; cout <<"\nchecking for is_empty template for a structure with one variable: "<< is_empty<TP_2>::value; cout <<"\nchecking for is_empty template for a structure with one static variable: "<< is_empty<TP_3>::value; cout <<"\nchecking for is_empty template for a structure with constructor: "<< is_empty<TP_4>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
checking for is_empty template for a structure with no variable: true checking for is_empty template for a structure with one variable: false checking for is_empty template for a structure with one static variable: true checking for is_empty template for a structure with constructor: true