इस लेख में हम सी++ एसटीएल में काम करने, वाक्य रचना और std::is_lvalue_reference टेम्पलेट के उदाहरणों पर चर्चा करेंगे।
C++ में is_lvalue_reference टेम्प्लेट का उपयोग यह जांचने के लिए किया जाता है कि परिभाषित प्रकार एक लैवल्यू संदर्भ है या नहीं।
एक अंतराल क्या है?
Lvalues वे मान हैं जो असाइनमेंट ऑपरेटर के बाईं ओर हैं। Lvalues वे भाव हैं जो स्मृति स्थान को संदर्भित करते हैं।
Lvalue संदर्भ क्या है?
लवल्यू संदर्भ एक संदर्भ है जो एक लाभा को बांधता है। यह बहुत हद तक उसी तरह है जैसे हम पारंपरिक C++ या C भाषा में एक चर का उल्लेख करते थे, यानी अपने पते को संदर्भित करने के लिए चर के साथ एम्परसेंड प्रतीक (&) का उपयोग करके।
उदाहरण
int& a;
सिंटैक्स
template <class T> is_lvalue_reference;
पैरामीटर
टेम्प्लेट में केवल T प्रकार का पैरामीटर हो सकता है, और जांच सकता है कि दिया गया प्रकार एक लैवल्यू संदर्भ है या नहीं
रिटर्न वैल्यू
यह एक बूलियन मान देता है, यदि दिया गया मान लैवल्यू संदर्भ है, तो सत्य है, और यदि दिया गया मान एक लैवल्यू संदर्भ नहीं है या जब हम किसी अज्ञात स्थान का संदर्भ दे रहे हैं तो यह गलत है
उदाहरण
Input: is_lvalue<int &>::value; Output: True Input: is_lvalue<int>::value; Output: False
उदाहरण
#include <iostream> #include <type_traits> using namespace std; class TP { }; int main() { cout << std::boolalpha; cout << "Checking for is_lvalue_reference: "; cout << "\nTP class : "<<is_lvalue_reference<TP>::value; cout << "\nTP& : "<< is_lvalue_reference<TP&>::value; cout << "\nTP&&: "<< is_lvalue_reference<TP&&>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Checking for is_lvalue_reference: TP class : false TP& : true TP&&: false
उदाहरण
#include <iostream> #include <type_traits> using namespace std; int main() { cout << std::boolalpha; cout << "Checking for is_lvalue_reference: "; cout << "\nint : "<<is_lvalue_reference<int>::value; cout << "\nint& : "<< is_lvalue_reference<int&>::value; cout << "\nint&&: "<< is_lvalue_reference<int&&>::value; cout << "\nchar : "<<is_lvalue_reference<char>::value; cout << "\nchar& : "<< is_lvalue_reference<char&>::value; cout << "\nchar&&: "<< is_lvalue_reference<char&&>::value; cout << "\nfloat : "<<is_lvalue_reference<float>::value; cout << "\nfloat& : "<< is_lvalue_reference<float&>::value; cout << "\nfloat&&: "<< is_lvalue_reference<float&&>::value; cout << "\ndouble : "<<is_lvalue_reference<double>::value; cout << "\ndouble& : "<< is_lvalue_reference<double&>::value; cout << "\ndouble&&: "<< is_lvalue_reference<double&&>::value; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Checking for is_lvalue_reference: int : false int& : true int&&: false char : false char& : true char&&: false float : false float& : true float&&: false double: false double : true double&&: falseके लिए जाँच कर रहा है।