इस लेख में हम C++ STL में std::is_pointer टेम्पलेट के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।
is_pointer एक टेम्पलेट है जो <type_traits> हेडर फाइल के अंतर्गत आता है। यह टेम्पलेट जांचता है कि दिया गया टाइप T एक पॉइंटर टाइप है या नहीं।
पॉइंटर क्या है?
पॉइंटर्स नॉन-स्टेटिक टाइप्स हैं जो किसी अन्य टाइप का पता रखते हैं या दूसरे शब्दों में जो मेमोरी पूल में किसी मेमोरी लोकेशन की ओर इशारा करते हैं। एस्टरिस्क (*) की मदद से हम पॉइंटर को परिभाषित करते हैं और जब हम उस विशिष्ट मेमोरी को संदर्भित करना चाहते हैं जिसे पॉइंटर होल्ड कर रहा है तो हम एस्टरिस्क (*) का भी उपयोग करते हैं।
वे टाइप हैं जिन्हें null के रूप में इनिशियलाइज़ किया जा सकता है और आवश्यकता के अनुसार बाद में टाइप बदल सकते हैं।
सिंटैक्स
template <class T> is_pointer;
पैरामीटर्स
टेम्पलेट में केवल टाइप T का एक पैरामीटर हो सकता है, और यह जांचता है कि दिया गया टाइप पॉइंटर है या नहीं।
रिटर्न वैल्यू
यह एक बूलियन मान लौटाता है, यदि दिया गया टाइप पॉइंटर वेरिएबल है तो true, और यदि दिया गया टाइप पॉइंटर नहीं है तो false।
उदाहरण
Input: is_pointer<int>::value; Output: False Input: is_pointer<int*>::value; Output: True
उदाहरण 1
#include <iostream>
#include <type_traits>
using namespace std;
class TP { };
int main() {
cout << boolalpha;
cout << "checking for is_pointer:";
cout << "\nTP: " << is_pointer<TP>::value;
cout << "\nTP*: " << is_pointer<TP*>::value;
cout << "\nTP&: " << is_pointer<TP&>::value;
cout << "\nNull Pointer: " << is_pointer<nullptr_t>::value;
return 0;
}
आउटपुट
checking for is_pointer: TP: false TP*: true TP&: false Null Pointer: false
उदाहरण 2
#include <iostream>
#include <type_traits>
using namespace std;
int main() {
cout << boolalpha;
cout << "checking for is_pointer:";
cout << "\nint: " << is_pointer<int>::value;
cout << "\nint*: " << is_pointer<int*>::value;
cout << "\nint **: " << is_pointer<int**>::value;
cout << "\nint ***: " << is_pointer<int***>::value;
return 0;
}
आउटपुट
checking for is_pointer: int: false int*: true int **: true int ***: true