内置类型¶
基本C++类型¶
Shiboken 知道 C++ 的基本类型,如 int 和 float,并在解析 C++ 头文件时收集有关 typedef 的信息,如 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 Containers,请使用 opaque-container 元素。
container-type 仍然可以指定以修改内置行为。
对于这种情况,提供了许多预定义的转换模板(参见 Predefined Templates)。
CPython 类型¶
Python 类型如 str 在 CPython 的 具体对象层 中匹配类型如 PyUnicode。它们有检查函数如 PyUnicode_Check(),Shiboken 会生成这些代码来检查函数参数。
这些类型在添加函数或修改类型时作为参数出现,作为转换规则中add-conversion的类型,或作为基本类型上的目标语言API类型。
它们作为自定义类型与它们的检查函数一起内置在Shiboken中。