std::add_const_t<T>
: 为类型 T
添加 const 修饰符。
std::add_volatile_t<T>
: 为类型 T
添加 volatile 修饰符。
std::add_cv_t<T>
: 为类型 T
添加 const 和 volatile 修饰符。
std::remove_const_t<T>
: 移除类型 T
的 const 修饰符。
std::remove_volatile_t<T>
: 移除类型 T
的 volatile 修饰符。
std::remove_cv_t<T>
: 移除类型 T
的 const 和 volatile 修饰符。
std::add_lvalue_reference_t<T>
: 为类型 T
添加左值引用修饰符。
std::add_rvalue_reference_t<T>
: 为类型 T
添加右值引用修饰符。
std::remove_reference_t<T>
: 移除类型 T
的引用修饰符。
std::remove_extent_t<T>
: 移除类型 T
的数组维度。
std::remove_all_extents_t<T>
: 移除类型 T
的所有数组维度。
std::remove_pointer_t<T>
: 移除类型 T
的指针修饰符。
std::add_pointer_t<T>
: 为类型 T
添加指针修饰符。
std::make_signed_t<T>
: 将类型 T
转换为有符号类型。
std::make_unsigned_t<T>
: 将类型 T
转换为无符号类型。
std::is_const_v<T>
: 检查给定的类型是否有const 修饰符。
std::is_volatile_v<T>
: 检查给定的类型是否有 volatile 修饰符。
std::is_trivial_v<T>
: 检查给定的类型是否是平凡类型。
std::is_pod_v<T>
: 检查给定的类型是否是 POD 类型。
std::is_literal_type_v<T>
: 检查给定的类型是否是字面类型。
std::is_aggregate_v<T>
: 检查给定的类型是否是聚合类型。
std::is_trivially_copyable_v<T>
: 检查给定的类型是否是可平凡复制的类型。
std::is_standard_layout_v<T>
: 检查给定的类型是否是标准布局类型。
std::is_empty_v<T>
: 检查给定的类型是否是空类型。
std::is_signed_v<T>
: 检查给定的类型是否是有符号类型。
std::is_unsigned_v<T>
: 检查给定的类型是否是无符号类型。
std::is_integral_v<T>
: 检查给定的类型是否是整数类型。
std::is_floating_point_v<T>
: 检查给定的类型是否是浮点类型。
std::is_arithmetic_v<T>
: 检查给定的类型是否是算术类型。
std::is_array_v<T>
: 检查给定的类型是否是数组类型。
std::is_pointer_v<T>
: 检查给定的类型是否是指针类型。
std::is_reference_v<T>
: 检查给定的类型是否是引用类型。
std::is_function_v<T>
: 检查给定的类型是否是函数类型。
std::is_enum_v<T>
: 检查给定的类型是否是枚举类型。
std::is_union_v<T>
: 检查给定的类型是否是联合类型。
std::is_class_v<T>
: 检查给定的类型是否是类类型。
std::is_polymorphic<T>
: 检查给定的类型是否是多态类型。
std::is_final_v<T>
: 检查给定的类型是否是最终类型。
std::is_abstract_v<T>
: 检查给定的类型是否是抽象类型。
std::is_same_v<T, U>
: 检查类型 T
和 U
是否相同。
std::is_base_of_v<Base, Derived>
: 检查类型 Derived
是否是类型 Base
的派生类。
std::is_convertible_v<From, To>
: 检查类型 From
是否可以转换为类型 To
。
std::is_invocable_v<T, Args...>
: 检查类型 T
是否可以被调用。
std::is_nothrow_invocable_v<T, Args...>
: 检查类型 T
是否可以被调用,且不会抛出异常。
std::is_invocable_r_v<Ret, T, Args...>
: 检查类型 T
是否可以被调用,且返回类型为 Ret
。
std::is_nothrow_invocable_r_v<Ret, T, Args...>
: 检查类型 T
是否可以被调用,且返回类型为 Ret
,且不会抛出异常。