内置类型#

原生 C++ 类型#

Shiboken 知道 C++ 原生类型,如 int 和 float,并在解析 C++ 头文件时收集关于 int32_tsize_t 等类型定义的信息。使用这些类型的函数重载将自动生成。要抑制原生类型,使用 rejection 标签。

原则上,无需在类型系统文件中使用 primitive-type 标签指定这些类型。

然而,指定一个类型意味着类型名称将被用于匹配函数的签名以进行 修改。因此,指定可能依赖于架构的类型(如 size_t),以避免在平台上需要拼写解析的类型可能会有所帮助。

std::stringstd::wstring 及其相关视图类型 std::string_viewstd::wstring_view 也得到支持。

C++ 容器类型#

C++ 容器 std::liststd::vectorstd::pairstd::mapstd::spanstd::unordered_map 均为内置类型。要指定 不透明容器,请使用 opaque-container 元素。《container-type`》 仍可指定以修改内置行为。对于此情况,提供了一系列预定义的转换模板(参见 预定义模板)。

CPython 类型#

类似于 str 的 Python 类型在 CPython 的 具体对象层 中与类似于 PyUnicode 的类型匹配。它们有检查函数,如 PyUnicode_Check(),Shiboken 会在代码中将它们生成以检查函数参数。

这些类型在添加函数或修改类型时作为参数出现,在 conversion-rule 内部的 primitive-type 上作为目标语言 API 类型。

它们被构建在 Shiboken 中,作为自定义类型以及它们的检查函数的一部分。