共用方式為


<type_traits>

定義提供編譯時期常數的範本,這些常數會提供其類型引數的屬性資訊。

#include <type_traits>

備註

「類型述詞」(Type Predicate) 是採用一或兩個類型引數的範本。 當類型述詞「具有 True」(Hold True) 時,會直接或間接地公開衍生自 true_type Typedef。 當類型述詞「具有 False」(Hold False) 時,會直接或間接地公開衍生自 false_type Typedef

「類型修飾詞」(Type Modifier) 是採用一或多個範本引數,且具有一個成員的範本,如下所示:

  • typedef modified-type type;

「類型查詢」(Type Query) 是採用一或多個範本引數的範本。 類型查詢會直接或間接地公開衍生自 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

從兩個類型建立一般類型的執行個體。

conditional

從兩個類型建立一般類型的執行個體。

decay

建立非參考、非常數或非暫時性的類型,或建立類型的指標。

enable_if

建立類型的執行個體,或是未定義的類型。

extent

取得陣列維度。

has_nothrow_assign

測試類型是否不會在指派時擲回。

has_nothrow_constructor

測試類型是否不會在預設建構時擲回。

has_nothrow_copy

測試類型是否不會在複製建構時擲回。

has_nothrow_copy_constructor

測試類型是否不會在複製建構時擲回。

has_nothrow_default_constructor

測試類型是否不會在預設建構時擲回。

has_trivial_assign

測試類型是否有 Trivial 指派。

has_trivial_constructor

測試類型是否有 Trivial 預設建構函式。

has_trivial_copy

測試類型是否有 Trivial 複製建構函式。

has_trivial_copy_constructor

測試類型是否有 Trivial 複製建構函式。

has_trivial_default_constructor

測試類型是否有 Trivial 預設建構函式。

has_trivial_destructor

測試類型是否有 Trivial 解構函式。

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

測試兩個類型是否一樣。

is_scalar

測試類型是否為純量。

is_signed

測試類型是否為有正負號整數。

is_standard_layout

測試類型是否為標準配置。

is_union

測試類型是否為等位。

is_unsigned

測試類型是否為無正負號整數。

is_void

測試類型是否為 void。

is_volatile

測試類型是否為暫時性。

make_signed

建立類型,或是建立大於或等於類型大小的最小帶正負號類型。

make_unsigned

建立類型,或是建立大於或等於類型大小的最小無正負號類型。

rank

取得陣列維度的數目。

remove_all_extents

從陣列類型建立非陣列類型。

remove_const

從類型建立非常數類型。

remove_cv

從類型建立非常數/暫時性類型。

remove_extent

從陣列類型建立項目類型。

remove_pointer

從類型指標建立類型。

remove_reference

從類型建立非參考類型。

remove_volatile

從類型建立非暫時性類型。

integral_constant

從類型及值建立整數常數。

Typedef

false_type

存有具有 False 值的整數常數。

true_type

存有具有 True 值的整數常數。

請參閱

參考

<functional>