इस लेख में हम सी++ एसटीएल में काम करने, वाक्य रचना और std::is_reference टेम्पलेट के उदाहरणों पर चर्चा करेंगे।
is_reference एक टेम्प्लेट है जो
यह टेम्प्लेट is_rvalue और is_lvalue का संयोजन है और यह जांचता है कि क्या कोई एक सत्य है या नहीं, तो is_reference का परिणाम भी सत्य होगा।
C++ में संदर्भ क्या है?
एक संदर्भ एक उपनाम या पहले से मौजूद चर का दूसरा नाम है। एक संदर्भ सूचक से भिन्न होता है -
- चूंकि हम संदर्भ को शून्य के रूप में सेट नहीं कर सकते हैं लेकिन एक सूचक एक शून्य सूचक हो सकता है।
- एक बार किसी ऑब्जेक्ट के लिए एक संदर्भ प्रारंभ हो जाने के बाद इसे बदला नहीं जा सकता है। पॉइंटर्स को किसी भी समय किसी अन्य वस्तु की ओर इशारा किया जा सकता है।
- संदर्भ बनाते समय इनिशियलाइज़ किया जाना चाहिए, जहाँ पॉइंटर को निर्माण के बाद बाद में इनिशियलाइज़ किया जा सकता है।
जिस चर को हम संदर्भित करना चाहते हैं, उससे पहले एम्परसेंड (&) प्रतीक का उपयोग करके एक संदर्भ घोषित किया जा सकता है।
सिंटैक्स
template <class T> is_reference;
पैरामीटर
टेम्प्लेट में केवल T प्रकार का पैरामीटर हो सकता है, और जांच सकता है कि दिया गया प्रकार एक संदर्भ प्रकार है या नहीं।
रिटर्न वैल्यू
यह एक बूलियन मान देता है, यदि दिया गया प्रकार एक संदर्भ प्रकार है, तो सत्य है, और यदि दिया गया प्रकार संदर्भ प्रकार नहीं है, तो यह गलत है।
उदाहरण
Input: is_reference<int>::value; Output: False Input: is_reference<int&>::value; Output: True
उदाहरण
#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के लिए जाँच कर रहा है
उदाहरण
#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के लिए जाँच कर रहा है