diff options
Diffstat (limited to 'sources/shiboken6/doc/typesystem_builtin_types.rst')
-rw-r--r-- | sources/shiboken6/doc/typesystem_builtin_types.rst | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/sources/shiboken6/doc/typesystem_builtin_types.rst b/sources/shiboken6/doc/typesystem_builtin_types.rst new file mode 100644 index 000000000..dea253930 --- /dev/null +++ b/sources/shiboken6/doc/typesystem_builtin_types.rst @@ -0,0 +1,58 @@ +.. _builtin-types: + +Built-in Types +-------------- + +.. _primitive-cpp-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 +:ref:`rejection` tag. + +In principle, there is no need to specify them in the typesystem +file using the :ref:`primitive-type` tag. + +However, specifying a type means that the type name is used for +matching signatures of functions for :ref:`modification <modify-function>`. +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. + + +.. _builtin-cpp-container-types: + +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 :ref:`opaque-containers`, use the :ref:`opaque-container` element. +:ref:`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 :ref:`predefined_templates`). + +.. _cpython-types: + +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 :ref:`adding functions <add-function>` +or :ref:`modifying types <replace-type>`, as type on `add-conversion` +within a :ref:`conversion-rule` or as target language API types on +:ref:`primitive-type`. + +They are built into Shiboken as :ref:`custom types <custom-type>` along +with their check functions. |