名前空間
変種
操作

std::make_unsigned

From cppreference.com
< cpp‎ | types
 
 
メタプログラミングライブラリ
型特性
型のカテゴリ
(C++11)
(C++11)(DR*)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11) 
(C++11)
(C++11)
型のプロパティ
(C++11)
(C++11)
(C++14)
(C++11)(C++26で非推奨)
(C++11)(C++20まで*)
(C++11)(C++20で非推奨)
(C++11)
型特性定数
メタ関数
(C++17)
サポートされている操作
関係とプロパティクエリ
型の変更
(C++11)(C++11)(C++11)
make_unsigned
(C++11)
型の変換
(C++11)(C++23で非推奨)
(C++11)(C++23で非推奨)
(C++11)
(C++11)(C++20まで*)(C++17)

(C++11)
(C++17)
コンパイル時有理数演算
コンパイル時整数シーケンス
 
ヘッダ <type_traits> で定義
template< class T >
struct make_unsigned;
(C++11以降)

Tが整数型(boolを除く)または列挙型の場合、メンバ型typeを提供します。これは、Tに対応する符号なし整数型であり、同じcv修飾子を持ちます。

Tが符号付きまたは符号なしのcharshortintlonglong longの場合、このリストからTに対応する符号なし型が提供されます。

Tが列挙型またはcharwchar_tchar8_t(C++20以降)char16_tchar32_tの場合、Tと同じsizeofを持ち、ランクが最小の符号なし整数型が提供されます。

それ以外の場合、動作は未定義です。

(C++20まで)

それ以外の場合、プログラムは不適格となります。

(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)
型が符号付き算術型であるかをチェックする
(クラステンプレート) [編集]
型が符号なし算術型であるかをチェックする
(クラステンプレート) [編集]
与えられた整数型に対応する符号付き型を取得する
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)