इस लेख में हम C++ STL में std::is_lvalue_reference टेम्पलेट के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।
C++ में is_lvalue_reference टेम्पलेट का उपयोग यह जांचने के लिए किया जाता है कि परिभाषित टाइप एक lvalue रेफरेंस है या नहीं।
lvalue क्या है?
Lvalues वे मान हैं जो असाइनमेंट ऑपरेटर के बाईं ओर होते हैं। Lvalues वे एक्सप्रेशन्स हैं जो मेमोरी लोकेशन को संदर्भित करते हैं।
Lvalue रेफरेंस क्या है?
Lvalue रेफरेंस एक ऐसा रेफरेंस है जो lvalue से बंधा होता है। यह पारंपरिक C++ या C भाषा में वेरिएबल को संदर्भित करने के तरीके के समान है, यानी वेरिएबल के साथ एम्परसैंड सिंबल (&) का उपयोग करके उसके पते को संदर्भित करना।
उदाहरण
int& a;
सिंटैक्स
template <class T> is_lvalue_reference;
पैरामीटर्स
टेम्पलेट में केवल टाइप T का एक पैरामीटर हो सकता है, और यह जांचता है कि दिया गया टाइप lvalue रेफरेंस है या नहीं।
रिटर्न वैल्यू
यह एक बूलियन मान लौटाता है, यदि दिया गया मान lvalue रेफरेंस है तो true, और यदि दिया गया मान lvalue रेफरेंस नहीं है या जब हम अज्ञात स्थान को संदर्भित कर रहे हों तो false।
उदाहरण
Input: is_lvalue<int &>::value; Output: True Input: is_lvalue<int>::value; Output: False
उदाहरण 1
#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
उदाहरण 2
#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