NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
类型修饰基本检查

检查类型的基本修饰信息 更多...

类型修饰基本检查 的协作图:

struct  is_bounded_array< T >
 判断类型是否为有界数组 更多...
struct  is_unbounded_array< T >
 判断类型是否为无界数组 更多...
struct  is_array< T >
 判断类型是否为数组类型 更多...
struct  is_lvalue_reference< T >
 判断类型是否为左值引用 更多...
struct  is_rvalue_reference< T >
 判断类型是否为右值引用 更多...
struct  is_reference< T >
 判断类型是否为引用类型 更多...
struct  is_null_pointer< T >
 判断类型是否为nullptr_t 更多...
struct  is_pointer< T >
 判断类型是否为指针类型 更多...
struct  is_enum< T >
 判断类型是否为枚举类型 更多...
struct  is_integral_like< T >
 判断类型是否为类整数类型 更多...
struct  is_union< T >
 判断类型是否为联合类型 更多...
struct  is_class< T >
 判断类型是否为类类型 更多...
struct  is_fundamental< T >
 判断类型是否为基本类型 更多...
struct  is_compound< T >
 判断类型是否为复合类型 更多...
struct  is_const< T >
 判断类型是否被const限定 更多...
struct  is_volatile< T >
 判断类型是否被volatile限定 更多...
struct  is_function< T >
 判断类型是否为函数类型 更多...
struct  is_allocable< T >
 判断类型是否可以进行内存分配 更多...
struct  is_object< T >
 判断类型是否为对象类型 更多...
struct  is_cstring< T >
 判断类型是否为C风格字符串类型 更多...
struct  is_member_function_pointer< T >
 判断类型是否为成员函数指针 更多...
struct  is_member_object_pointer< T >
 判断类型是否为成员对象指针 更多...
struct  is_member_pointer< T >
 判断类型是否为成员指针 更多...
struct  is_scalar< T >
 判断类型是否为标量类型 更多...
struct  is_empty< T >
 判断类型是否为空类型 更多...
struct  is_polymorphic< T >
 判断类型是否为多态类型 更多...
struct  is_abstract< T >
 判断类型是否为抽象类型 更多...
struct  is_final< T >
 判断类型是否被final限定 更多...
struct  underlying_type< T >
 获取枚举类型的底层整数类型 更多...
struct  is_standard_layout< T >
 判断类型是否符合标准布局 更多...
struct  is_pod< T >
 判断类型是否为POD类型 更多...
struct  has_unique_object_representations< T >
 判断类型是否具有唯一的对象表示 更多...
struct  is_aggregate< T >
 判断类型是否为聚合类型 更多...
struct  is_base_of< Base, Derived >
 判断Base是否是Derived的基类 更多...

类型定义

template<typename T>
using underlying_type_t = typename underlying_type<T>::type
 underlying_type的便捷别名

函数

template<typename T, typename Mem>
constexpr bool is_pointer_interconvertible_with_class (Mem T::*mp) noexcept
 判断成员指针是否指向类对象的起始位置
template<typename S1, typename S2, typename M1, typename M2>
constexpr bool is_corresponding_member (M1 S1::*m1, M2 S2::*m2) noexcept
 判断两个成员指针是否指向对应位置的成员

变量

template<typename T>
NEFORCE_INLINE17 constexpr bool is_bounded_array_v = is_bounded_array<T>::value
 is_bounded_array的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_unbounded_array_v = is_unbounded_array<T>::value
 is_unbounded_array的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_array_v = is_array<T>::value
 is_array的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_lvalue_reference_v = is_lvalue_reference<T>::value
 is_lvalue_reference的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_rvalue_reference_v = is_rvalue_reference<T>::value
 is_rvalue_reference的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_reference_v = is_reference<T>::value
 is_reference的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_null_pointer_v = is_null_pointer<T>::value
 is_null_pointer的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_pointer_v = is_pointer<T>::value
 is_pointer的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_enum_v = is_enum<T>::value
 is_enum的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_integral_like_v = is_integral_like<T>::value
 is_integral_like的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_union_v = is_union<T>::value
 is_union的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_class_v = is_class<T>::value
 is_class的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_fundamental_v = is_fundamental<T>::value
 is_fundamental的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_compound_v = is_compound<T>::value
 is_compound的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_const_v = is_const<T>::value
 is_const的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_volatile_v = is_volatile<T>::value
 is_volatile的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_function_v = is_function<T>::value
 is_function的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_allocable_v = is_allocable<T>::value
 is_allocable的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_object_v = is_object<T>::value
 is_object的便捷变量模板
template<typename T>
constexpr bool is_cstring_v = is_cstring<T>::value
 is_cstring的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_member_function_pointer_v = is_member_function_pointer<T>::value
 is_member_function_pointer的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_member_object_pointer_v = is_member_object_pointer<remove_cv_t<T>>::value
 is_member_object_pointer的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_member_pointer_v = is_member_pointer<T>::value
 is_member_pointer的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_scalar_v = is_scalar<T>::value
 is_scalar的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_empty_v = is_empty<T>::value
 is_empty的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_polymorphic_v = is_polymorphic<T>::value
 is_polymorphic的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_abstract_v = is_abstract<T>::value
 is_abstract的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_final_v = is_final<T>::value
 is_final的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_standard_layout_v = is_standard_layout<T>::value
 is_standard_layout的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_pod_v = is_pod<T>::value
 is_pod的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool has_unique_object_representations_v = has_unique_object_representations<T>::value
 has_unique_object_representations的便捷变量模板
template<typename T>
NEFORCE_INLINE17 constexpr bool is_aggregate_v = is_aggregate<T>::value
 is_aggregate的便捷变量模板
template<typename Base, typename Derived>
NEFORCE_INLINE17 constexpr bool is_base_of_v = is_base_of<Base, Derived>::value
 is_base_of的便捷变量模板

详细描述

检查类型的基本修饰信息

函数说明

◆ is_corresponding_member()

template<typename S1, typename S2, typename M1, typename M2>
bool is_corresponding_member ( M1 S1::* m1,
M2 S2::* m2 )
constexprnoexcept

判断两个成员指针是否指向对应位置的成员

模板参数
S1第一个类类型
S2第二个类类型
M1第一个成员类型
M2第二个成员类型
参数
m1第一个成员指针
m2第二个成员指针
返回
如果成员指针指向对应位置的成员,返回true

用于检查两个不同类中的成员指针是否指向布局中的对应位置。

在文件 type_traits.hpp2264 行定义.

◆ is_pointer_interconvertible_with_class()

template<typename T, typename Mem>
bool is_pointer_interconvertible_with_class ( Mem T::* mp)
constexprnoexcept

判断成员指针是否指向类对象的起始位置

模板参数
T类类型
Mem成员类型
参数
mp成员指针
返回
如果成员指针指向类对象的起始位置,返回true

用于检查成员指针是否与类对象指针可互相转换。

在文件 type_traits.hpp2247 行定义.