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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP