C++ 中的 is_unsigned 模板
在本文中,我們將探討 C++ STL 中 std::is_unsigned 模板的工作原理、語法和示例。
is_unsigned 是屬於 <type_traits> 標頭檔案的一個模板。此模板用於檢查給定型別 T 是否為無符號型別。
什麼是 C++ 中的無符號資料型別?
無符號資料型別是我們用來識別值不會為負的值,如學號、隨機數 ID 等。
要將一種型別設為無符號型別,我們使用關鍵字 unsigned 作為資料型別的詞首,例如:
unsigned int;
unsigned float;
語法
template <class T>is_unsigned;
引數
該模板可僅擁有型別 T 的引數,並檢查 T 是否為無符號型別。
返回值
如果給定型別為無符號型別,則返回布林值 true;如果給定型別不是無符號型別,則返回 false。
示例
Input: is_unsigned<unsigned int>::value; Output: True Input: is_unsigned<int>::value; Output: False
示例
#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_unsigned:"; cout << "\nint:" << is_unsigned<int>::value; cout << "\nTP:" << is_unsigned<TP>::value; cout << "\nTP_1:" << is_unsigned<TP_1>::value; cout << "\nTP_2:" << is_unsigned<TP_2>::value; return 0; }
輸出
如果我們執行上述程式碼,它會生成以下輸出:
checking for is_unsigned: Int: false TP: false TP_1: false TP_2: false
示例
#include <iostream> #include <type_traits> using namespace std; int main() { cout << boolalpha; cout << "checking for is_unsigned:"; cout << "\nfloat:" << is_unsigned<float>::value; cout << "\nSigned int:" << is_unsigned<signed int>::value; cout << "\nUnsigned int:" << is_unsigned<unsigned int>::value; cout << "\ndouble:" << is_unsigned<double>::value; return 0; }
輸出
如果我們執行上述程式碼,它會生成以下輸出:
checking for is_signed: Float: false Signed int: false Unsigned int: true Double: false
廣告