C++ – 类型系统关系图

C/C++ 参考手册

graph LR

Fundamental[基础类型<br/>std::is_fundamental]
Void[void<br/>std::is_void]
NullPointer[std::nullptr_t<br/>std::is_null_pointer]
Arithmetic[算术类型<br/>std::is_arithmetic]
FloatingPoint[浮点类型<br/>std::is_floating_point]
Integral[整数类型<br/>std::is_integral]

Fundamental --> Void
Fundamental --> NullPointer
Fundamental --> Arithmetic
Arithmetic --> FloatingPoint
Arithmetic --> Integral
Integral --> 有符号整数类型
Integral --> 无符号整数类型
Integral --> bool
Integral --> 字符类型

Compound[复合类型<br/>std::is_compound]
Reference[引用类型<br/>std::is_reference]
Function[函数类型<br/>std::is_function]
Pointer[指针类型<br/>std::is_pointer]
MemberPointer[成员指针类型<br/>std::is_member_pointer]
Enum[枚举类型<br/>std::is_enum]
Array[数组类型<br/>std::is_array]
LValueReference[左值引用类型<br/>std::is_lvalue_reference]
RValueReference[右值引用类型<br/>std::is_rvalue_reference]
MemberObjectPointer[数据成员指针类型<br/>std::is_member_object_pointer]
MemberFunctionPointer[成员函数指针类型<br/>std::is_member_function_pointer]
ScopedEnum[有作用域枚举类型<br/>std::is_scoped_enum]
BoundedArray[已知边界数组类型<br/>std::is_bounded_array]
UnboundedArray[未知边界数组类型<br/>std::is_unbounded_array]
Class[非联合体类型<br/>std::is_class]
Union[联合体类型<br/>std::is_union]

Compound --> Reference
Compound --> Function
Compound --> Pointer
Compound --> MemberPointer
Compound --> Enum
Compound --> Array
Compound --> 类类型
Reference --> LValueReference
Reference --> RValueReference
Pointer --> 对象指针类型
Pointer --> 函数指针类型
MemberPointer --> MemberObjectPointer
MemberPointer --> MemberFunctionPointer
Enum --> ScopedEnum
Enum --> 无作用域枚举类型
Array --> BoundedArray
Array --> UnboundedArray
类类型 --> Class
类类型 --> Union
LValueReference --> 对象左值引用类型
LValueReference --> 函数左值引用类型
RValueReference --> 对象右值引用类型
RValueReference --> 函数右值引用类型

subgraph A[对象类型 std::is_object]

    subgraph B[标量类型 std::is_scalar]

        NullPointer
        Arithmetic
        FloatingPoint
        Integral
        bool
        字符类型
        有符号整数类型
        无符号整数类型

        subgraph 有符号算术类型
            FloatingPoint
            有符号整数类型
        end

        subgraph 无符号算术类型
            无符号整数类型
            bool
        end

    end

end

subgraph C[对象类型 std::is_object]

    Array
    类类型
    BoundedArray
    UnboundedArray
    Class
    Union

    subgraph D[标量类型 std::is_scalar]

        Pointer
        MemberPointer
        Enum
        对象指针类型
        函数指针类型
        MemberObjectPointer
        MemberFunctionPointer
        ScopedEnum
        无作用域枚举类型

    end

end

发表回复