内置类型#
原生 C++ 类型#
Shiboken 知道 C++ 原生类型,如 int 和 float,并在解析 C++ 头文件时收集关于 int32_t 和 size_t 等类型定义的信息。使用这些类型的函数重载将自动生成。要抑制原生类型,使用 rejection 标签。
原则上,无需在类型系统文件中使用 primitive-type 标签指定这些类型。
然而,指定一个类型意味着类型名称将被用于匹配函数的签名以进行 修改。因此,指定可能依赖于架构的类型(如 size_t),以避免在平台上需要拼写解析的类型可能会有所帮助。
std::string、std::wstring 及其相关视图类型 std::string_view、std::wstring_view 也得到支持。
C++ 容器类型#
C++ 容器 std::list
、std::vector
、std::pair
、std::map
、std::span
和 std::unordered_map
均为内置类型。要指定 不透明容器,请使用 opaque-container 元素。《container-type`》 仍可指定以修改内置行为。对于此情况,提供了一系列预定义的转换模板(参见 预定义模板)。
CPython 类型#
类似于 str 的 Python 类型在 CPython 的 具体对象层 中与类似于 PyUnicode 的类型匹配。它们有检查函数,如 PyUnicode_Check(),Shiboken 会在代码中将它们生成以检查函数参数。
这些类型在添加函数或修改类型时作为参数出现,在 conversion-rule 内部的 primitive-type 上作为目标语言 API 类型。
它们被构建在 Shiboken 中,作为自定义类型以及它们的检查函数的一部分。