内置类型

基本C++类型

Shiboken 知道 C++ 的基本类型,如 int 和 float,并在解析 C++ 头文件时收集有关 typedef 的信息,如 int32_tsize_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::spanstd::unordered_map 是内置的。 要指定 Opaque Containers,请使用 opaque-container 元素。 container-type 仍然可以指定以修改内置行为。 对于这种情况,提供了许多预定义的转换模板(参见 Predefined Templates)。

CPython 类型

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

这些类型在添加函数修改类型时作为参数出现,作为转换规则add-conversion的类型,或作为基本类型上的目标语言API类型。

它们作为自定义类型与它们的检查函数一起内置在Shiboken中。