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

更新於:2020 年 3 月 23 日

190 次瀏覽

啟動您的 職業生涯

完成課程,獲得認證

開始
廣告