std::make_unsigned
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <type_traits> 中定义
|
||
template< class T > struct make_unsigned; |
(C++11 起) | |
鉴于一个不可分割的(除bool)或者枚举类型
T
,提供成员typedeftype
,这是对应于T
的无符号整数类型,相同的cv修饰符.原文:
Given an integral (except bool) or enumeration type
T
, provides the member typedef type
which is the unsigned integer type corresponding to T
, with the same cv-qualifiers.[编辑] 会员类型
姓名
|
Definition |
type
|
无符号整数类型对应的
T 原文: the unsigned integer type corresponding to T |
[编辑] 示例
#include <iostream> #include <type_traits> int main() { typedef std::make_unsigned<char>::type char_type; typedef std::make_unsigned<int>::type int_type; typedef std::make_unsigned<volatile long>::type long_type; bool ok1 = std::is_same<char_type, unsigned char>::value; bool ok2 = std::is_same<int_type, unsigned int>::value; bool ok3 = std::is_same<long_type, volatile unsigned long>::value; std::cout << std::boolalpha << "char_type is 'unsigned char'? : " << ok1 << '\n' << "int_type is 'unsigned int'? : " << ok2 << '\n' << "long_type is 'volatile unsigned long'? : " << ok3 << '\n'; }
输出:
char_type is 'unsigned char'? : true int_type is 'unsigned int'? : true long_type is 'volatile unsigned long'? : true
[编辑] 另请参阅
(C++11) |
检查是否是有符号数字类型 (类模板) |
(C++11) |
检查是否是无符号数字类型 (类模板) |
(C++11) |
将整数类型转换成对应的有符号整数类型 (类模板) |