इस लेख में हम C++ STL में std::is_signed टेम्पलेट के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।
is_signed एक टेम्पलेट है जो <type_traits> हेडर फाइल के अंतर्गत आता है। यह टेम्पलेट जांचता है कि दिया गया टाइप T एक साइन्ड टाइप है या नहीं।
साइन्ड टाइप क्या है?
ये बेसिक अंकगणितीय टाइप्स हैं, जिनमें उनके साथ साइन वैल्यू होती है। सभी अंकगणितीय डेटा टाइप्स या तो साइन्ड होते हैं या अनसाइन्ड।
जैसे हम मानों को नेगेटिव में दिखाना चाहते हैं तो हम साइन्ड टाइप का उपयोग करते हैं।
जैसे: -1 साइन्ड int है और -1.009 साइन्ड फ्लोट है।
डिफ़ॉल्ट रूप से सभी टाइप्स साइन्ड होते हैं, उन्हें अनसाइन्ड बनाने के लिए हमें डेटा टाइप को अनसाइन्ड से प्रीफिक्स करना होगा।
सिंटैक्स
template <class T> is_signed;
पैरामीटर्स
टेम्पलेट में केवल टाइप T का एक पैरामीटर हो सकता है, और यह जांचता है कि T साइन्ड टाइप है या नहीं।
रिटर्न वैल्यू
यह एक बूलियन मान लौटाता है, यदि दिया गया टाइप साइन्ड टाइप है तो true, और यदि दिया गया टाइप साइन्ड टाइप नहीं है तो false।
उदाहरण
Input: is_signed<int>::value; Output: True Input: is_signed<unsigned int>::value; Output: False
उदाहरण 1
#include <iostream>
#include <type_traits>
using namespace std;
class TP { };
enum TP_1 : int {};
enum class TP_2 : int {};
int main() {
cout << boolalpha;
cout << "checking for is_signed:";
cout << "\nint: " << is_signed<int>::value;
cout << "\nTP: " << is_signed<TP>::value;
cout << "\nTP_1: " << is_signed<TP_1>::value;
cout << "\nTP_2: " << is_signed<TP_2>::value;
return 0;
}
आउटपुट
checking for is_signed: Int: true TP: false TP_1: false TP_2: false
उदाहरण 2
#include <iostream>
#include <type_traits>
using namespace std;
int main() {
cout << boolalpha;
cout << "checking for is_signed:";
cout << "\nfloat: " << is_signed<float>::value;
cout << "\nSigned int: " << is_signed<signed int>::value;
cout << "\nUnsigned int: " << is_signed<unsigned int>::value;
cout << "\ndouble: " << is_signed<double>::value;
return 0;
}
आउटपुट
checking for is_signed: Float: true Signed int: true Unsigned int: false Double: true