std:: make_unsigned
| Type traits | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Compile-time rational arithmetic | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Compile-time integer sequences | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
(C++14)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<type_traits>
|
||
|
template
<
class
T
>
struct make_unsigned ; |
(C++11以降) | |
T
が(
bool
を除く)整数型または列挙型の場合、同じcv修飾子を持つ
T
に対応する符号なし整数型であるメンバーtypedef
type
を提供します。
T
が符号付きまたは符号なしの
char
、
short
、
int
、
long
、
long
long
である場合、このリストから
T
に対応する符号なし型が提供されます。
T
が列挙型または
char
、
wchar_t
、
char8_t
(C++20以降)
、
char16_t
、
char32_t
である場合、
T
と同じ
sizeof
を持つ最小の
ランク
の符号なし整数型が提供される。
|
そうでない場合、動作は未定義です。 |
(until C++20) |
|
そうでない場合、プログラムは不適格です。 |
(since C++20) |
プログラムが
std::make_unsigned
に対する特殊化を追加する場合、動作は未定義です。
目次 |
メンバー型
| 名前 | 定義 |
type
|
T
に対応する符号なし整数型
|
ヘルパー型
|
template
<
class
T
>
using make_unsigned_t = typename make_unsigned < T > :: type ; |
(C++14以降) | |
例
#include <type_traits> int main() { using uchar_type = std::make_unsigned_t<char>; using uint_type = std::make_unsigned_t<int>; using ulong_type = std::make_unsigned_t<volatile long>; static_assert( std::is_same_v<uchar_type, unsigned char> and std::is_same_v<uint_type, unsigned int> and std::is_same_v<ulong_type, volatile unsigned long> ); }
関連項目
|
(C++11)
|
型が符号付き算術型かどうかをチェックする
(クラステンプレート) |
|
(C++11)
|
型が符号なし算術型かどうかをチェックする
(クラステンプレート) |
|
(C++11)
|
指定された整数型に対応する符号付き型を取得する
(クラステンプレート) |