次の方法で共有


<type_traits>

型引数のプロパティに関する情報を提供するコンパイル時定数を備えたテンプレートを定義します。

#include <type_traits>

解説

型述語は、1 つまたは 2 つの型引数を受け取るテンプレートです。 型述語が true を保持する場合は、true_type Typedef からパブリックに (直接または間接的に) 派生されます。 型述語が false を保持する場合は、false_type Typedef からパブリックに (直接または間接的に) 派生されます。

型修飾子は、次に示すように、1 つ以上のテンプレート引数を受け取るテンプレートで、メンバーを 1 つ持ちます。

  • typedef modified-type type;

型クエリは、1 つ以上のテンプレート引数を受け取るテンプレートです。 型クエリは、integral_constant<std::size_t, value> からパブリックに (直接または間接的に) 派生されます。 引数 value として渡された値を保持します。

エイリアス テンプレート

typename foo<T>::type のエイリアス テンプレートが提供されます。"foo" はテンプレート クラス名です。 たとえば、add_const には、その型 add_const_t のエイリアス テンプレートがあり、次のように定義されています。

template<class T>
    using add_const_t = typename add_const<T>::type;

add_const_t

aligned_storage_t

make_signed_t

remove_pointer_t

add_cv_t

aligned_union_t

make_unsigned_t

remove_reference_t

add_lvalue_reference_t

common_type_t

remove_all_extents_t

remove_volatile_t

add_pointer_t

conditional_t

remove_const_t

result_of_t

add_rvalue_reference_t

decay_t

remove_cv_t

underlying_type_t

add_volatile_t

enable_if_t

remove_extent_t

クラス

add_const

型から const 型を作成します。

add_cv

型から const/volatile 型を作成します。

add_pointer

型から型へのポインターを作成します。

add_reference

型から型への参照を作成します。

add_volatile

型から volatile 型を作成します。

aligned_storage

適切にアライメントされた型を作成します。

alignment_of

型のアライメントを取得します。

common_type

2 つの型の共通型のインスタンスを作成します。

conditional

2 つの型の共通型のインスタンスを作成します。

decay

非参照、非定数、非揮発の型、または型へのポインターを作成します。

enable_if

型のインスタンスまたは未定義の型を作成します。

extent

配列の次元を取得します。

has_nothrow_assign

代入時に例外がスローされない型であるかどうかをテストします。

has_nothrow_constructor

既定のコンストラクターで例外がスローされない型であるかどうかをテストします。

has_nothrow_copy

コピー コンストラクターで例外がスローされない型であるかどうかをテストします。

has_nothrow_copy_constructor

コピー コンストラクターで例外がスローされない型であるかどうかをテストします。

has_nothrow_default_constructor

既定のコンストラクターで例外がスローされない型であるかどうかをテストします。

has_trivial_assign

型に自明な代入が存在するかどうかをテストします。

has_trivial_constructor

型に自明な既定コンストラクターが存在するかどうかをテストします。

has_trivial_copy

型に自明なコピー コンストラクターが存在するかどうかをテストします。

has_trivial_copy_constructor

型に自明なコピー コンストラクターが存在するかどうかをテストします。

has_trivial_default_constructor

型に自明な既定コンストラクターが存在するかどうかをテストします。

has_trivial_destructor

型に自明なデストラクターが存在するかどうかをテストします。

has_virtual_destructor

型に仮想デストラクターが存在するかどうかをテストします。

is_abstract

型が抽象クラスであるかどうかをテストします。

is_arithmetic

型が演算型であるかどうかをテストします。

is_array

型が配列型であるかどうかをテストします。

is_base_of

一方の型がもう一方の型の基本クラスであるかどうかをテストします。

is_class

型がクラスであるかどうかをテストします。

is_compound

型が非スカラーであるかどうかをテストします。

is_const

型が定数型であるかどうかをテストします。

is_convertible

一方の型をもう一方の型に変換できるかどうかをテストします。

is_empty

型が空のクラスであるかどうかをテストします。

is_enum

型が列挙型であるかどうかをテストします。

is_floating_point

型が浮動小数点型であるかどうかをテストします。

is_function

型が関数型であるかどうかをテストします。

is_fundamental

型が void または演算型であるかどうかをテストします。

is_integral

型が整数型であるかどうかをテストします。

is_lvalue_reference

型が lvalue 参照であるかどうかをテストします。

is_member_function_pointer

型がメンバー関数へのポインターであるかどうかをテストします。

is_member_object_pointer

型がメンバー オブジェクトへのポインターであるかどうかをテストします。

is_member_pointer

型がメンバーへのポインターであるかどうかをテストします。

is_object

型がオブジェクト型であるかどうかをテストします。

is_pod

型が POD であるかどうかをテストします。

is_pointer

型がポインターであるかどうかをテストします。

is_polymorphic

型に仮想関数が存在するかどうかをテストします。

is_reference

型が参照であるかどうかをテストします。

is_rvalue_reference

型が rvalue 参照であるかどうかをテストします。

is_same

2 つの型が等しいかどうかをテストします。

is_scalar

型がスカラーであるかどうかをテストします。

is_signed

型が符号付き整数であるかどうかをテストします。

is_standard_layout

型が標準レイアウト型であるかどうかをテストします。

is_union

型が共用体であるかどうかをテストします。

is_unsigned

型が符号なし整数であるかどうかをテストします。

is_void

型が void であるかどうかをテストします。

is_volatile

型が volatile であるかどうかをテストします。

make_signed

サイズが型以上の型または最小の符号付きの型を作成します。

make_unsigned

サイズが型以上の型または最小の符号なしの型を作成します。

rank

配列の次元数を取得します。

remove_all_extents

配列型から非配列型を作成します。

remove_const

型から非 const 型を作成します。

remove_cv

型から非 const/volatile 型を作成します。

remove_extent

配列型から要素型を作成します。

remove_pointer

型へのポインターから型を作成します。

remove_reference

型から非参照型を作成します。

remove_volatile

型から非 volatile 型を作成します。

integral_constant

型および値から整数定数を作成します。

Typedef

false_type

false 値を持つ整数定数を保持します。

true_type

true 値を持つ整数定数を保持します。

参照

関連項目

<functional>