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