Built-in Types#
Primitive C++ Types#
Shiboken knows the C++ primitive types like int and float and gathers information about typedefs like int32_t and size_t at runtime while parsing C++ headers. Function overloads using these types will be automatically generated. To suppress a primitive type, use the rejection tag.
In principle, there is no need to specify them in the typesystem file using the primitive-type tag.
However, specifying a type means that the type name is used for matching signatures of functions for modification. So, it might make sense to specify architecture-dependent types like size_t to avoid having to spell out the resolved type, which might differ depending on platform.
std::string, std::wstring and their associated view types std::string_view, std::wstring_view are also supported.
C++ Container Types#
The C++ containers std::list
, std::vector
,
std::pair
, std::map
, std::span
and std::unordered_map
are
built-in.
To specify Opaque Containers, use the opaque-container element.
container-type can still be specified to modify the built-in behavior.
For this case, a number of pre-defined conversion templates
are provided (see Predefined Templates).
CPython Types#
Python types like str match types like PyUnicode in the Concrete Objects Layer of CPython. They have check functions like PyUnicode_Check(), which Shiboken generates into the code checking the function arguments.
These types occur as parameters when adding functions or modifying types, as type on add-conversion within a conversion-rule or as target language API types on primitive-type.
They are built into Shiboken as custom types along with their check functions.