Library of Assembled Shared Sources
pyobject_macros.h File Reference
Include dependency graph for pyobject_macros.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

Module Declaration Macros

These macros declare and define ModuleDefinition objects that represent Python modules.

They create the fundamental module object that serves as the container for all exported functions, classes, and constants.

#define PY_DECLARE_MODULE_NAME_DOC(i_module, s_name, s_doc)
 Declare and define a ModuleDefinition object representing a Python module.
 
#define PY_DECLARE_MODULE_NAME(i_module, s_name)
 Declare a module with name only (no documentation).
 
#define PY_DECLARE_MODULE_DOC(i_module, s_doc)
 Declare a module with documentation, using the identifier as the module name.
 
#define PY_DECLARE_MODULE(i_module)
 Declare a module with minimal setup (name derived from identifier, no documentation).
 
Module Entrypoint and Injection Macros

These macros handle module initialization, injection, and extension module creation.

They manage the Python module lifecycle from creation to registration with the Python interpreter.

If you're building a Python extension module (a .pyd or .so file), you will typically use the entrypoint macros to create the required PyInit_* function that Python calls:

// Declare module
PY_DECLARE_MODULE_NAME_DOC(mymodule, "mymodule", "My example module")
// Add functions and classes
// ...
// Create module entrypoint for Python extension
#define PY_MODULE_ENTRYPOINT(i_module)
Create a Python module initialization function using the module identifier as the function name.
#define PY_DECLARE_MODULE_NAME_DOC(i_module, s_name, s_doc)
Declare and define a ModuleDefinition object representing a Python module.

The injection macros are more low-level and can be used to create modules at runtime to be registered with an embedded Python interpreter.

#define PY_MODULE_ENTRYPOINT_NAME(i_module, i_name)
 Create a PyInit_* Python module initialization function with custom name.
 
#define PY_MODULE_ENTRYPOINT(i_module)
 Create a Python module initialization function using the module identifier as the function name.
 
#define PY_INJECT_MODULE(i_module)
 Inject a Python module so Python becomes aware of it.
 
#define PY_INJECT_MODULE_EX(i_module, s_moduleName, s_doc)
 
#define PY_INJECT_MODULE_NAME(i_module, s_moduleName)
 
#define PY_INJECT_MODULE_DOC(i_module, s_doc)
 
#define PY_EXTENSION_MODULE_EX(i_module, f_injection, s_doc)
 Inject a python module so Python is aware of it and produce all necessary code so a module can be used as extension of Python.
 
#define PY_EXTENSION_MODULE_DOC(i_module, f_injection, s_doc)
 Create an extension module with documentation.
 
#define PY_EXTENSION_MODULE(i_module, f_injection)
 Create an extension module (no documentation).
 
Module Constants and Objects Macros

These macros add constants, variables, and arbitrary Python objects to modules.

They provide different approaches for exposing C++ values and objects to Python.

#define PY_MODULE_INTEGER_CONSTANT(i_module, s_name, s_value)
 Add an integer constant to a Python module.
 
#define PY_MODULE_STRING_CONSTANT(i_module, s_name, s_value)
 Add a string constant to a Python module.
 
#define PY_INJECT_OBJECT_IN_MODULE_EX(o_object, i_module, s_objectName)
 Inject an arbitrary object into an already created module at runtime.
 
#define PY_INJECT_OBJECT_IN_MODULE(o_object, i_module)
 Inject an object using its C++ identifier as the Python name.
 
#define PY_MODULE_ADD_INTEGER_CONSTANT(i_module, s_name, v_value)
 
#define PY_MODULE_ADD_STRING_CONSTANT(i_module, s_name, s_value)
 
Basic Function Export Macros

These macros export C++ functions to Python with automatic type deduction and wrapper generation.

Use these for simple function exports where overloading is not an issue and automatic type deduction is sufficient.

#define PY_MODULE_PY_FUNCTION_EX(i_module, f_cppFunction, s_functionName, s_doc)
 Export a C++ function to Python without automatic wrapper generation.
 
#define PY_MODULE_FUNCTION_EX(i_module, f_cppFunction, s_functionName, s_doc, i_dispatcher)
 Export a C++ free function to Python with full control over overloading.
 
#define PY_MODULE_FUNCTION_NAME_DOC(i_module, f_cppFunction, s_name, s_doc)
 Export a C++ free function to Python with custom name and documentation.
 
#define PY_MODULE_FUNCTION_NAME(i_module, f_cppFunction, s_name)
 Export a C++ free function to Python with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_DOC(i_module, f_cppFunction, s_doc)
 Export a C++ free function to Python using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION(i_module, f_cppFunction)
 Export a C++ free function to Python using the C++ function name (no documentation).
 
Function Cast Export Macros (Deprecated)
Deprecated
These macros are deprecated. Instead of using casting macros, define explicit wrapper functions with the desired signatures and export those directly using the basic function export macros.

These macros export C++ functions to Python with explicit type casting and support for default parameters. They create wrapper functions that handle type conversions and allow exporting functions with default parameters by omitting trailing parameters.

#define PY_MODULE_FUNCTION_CAST_EX_0(i_module, f_cppFunction, t_return, s_functionName, s_doc, i_dispatcher)
 Exports a C++ free functions to Python with on the fly casting on return type and parameters, including omission of default parameters.
 
#define PY_MODULE_FUNCTION_CAST_EX_1(i_module, f_cppFunction, t_return, t_P1, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_2(i_module, f_cppFunction, t_return, t_P1, t_P2, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_EX_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_functionName, s_doc, i_dispatcher)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_0(i_module, f_cppFunction, t_return, t_params, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_1(i_module, f_cppFunction, t_return, t_P1, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_2(i_module, f_cppFunction, t_return, t_P1, t_P2, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_DOC_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_functionName, s_doc)
 
#define PY_MODULE_FUNCTION_CAST_NAME_0(i_module, f_cppFunction, t_return, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_1(i_module, f_cppFunction, t_return, t_P1, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_2(i_module, f_cppFunction, t_return, t_P1, t_P2, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_functionName)
 
#define PY_MODULE_FUNCTION_CAST_NAME_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_functionName)
 
Type-Qualified Function Export Macros

These macros export C++ functions to Python with explicit type qualification to resolve function overload ambiguities.

They provide fine-grained control over function signatures and are essential when exporting overloaded functions that would otherwise be ambiguous.

The macros are organized in layers:

#define PY_MODULE_FUNCTION_QUALIFIED_EX(i_module, f_cppFunction, t_return, t_params, s_functionName, s_doc, i_dispatcher)
 Export a C++ free function to Python with explicit type qualification to resolve ambiguities.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_0(i_module, f_cppFunction, t_return, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 0-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_1(i_module, f_cppFunction, t_return, t_P1, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 1-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_2(i_module, f_cppFunction, t_return, t_P1, t_P2, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 2-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 3-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 4-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 5-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 6-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 7-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 8-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 9-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 10-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 11-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 12-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 13-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 14-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_EX_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_functionName, s_doc, i_dispatcher)
 Export a C++ function with type qualification for 15-parameter functions with full control.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC(i_module, f_cppFunction, t_return, t_params, s_functionName, s_doc)
 Export a C++ function with type qualification and custom name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_0(i_module, f_cppFunction, t_return, t_params, s_functionName, s_doc)
 Export a C++ function with type qualification for 0-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_1(i_module, f_cppFunction, t_return, t_P1, s_functionName, s_doc)
 Export a C++ function with type qualification for 1-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_2(i_module, f_cppFunction, t_return, t_P1, t_P2, s_functionName, s_doc)
 Export a C++ function with type qualification for 2-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, s_functionName, s_doc)
 Export a C++ function with type qualification for 3-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, s_functionName, s_doc)
 Export a C++ function with type qualification for 4-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_functionName, s_doc)
 Export a C++ function with type qualification for 5-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_functionName, s_doc)
 Export a C++ function with type qualification for 6-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_functionName, s_doc)
 Export a C++ function with type qualification for 7-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_functionName, s_doc)
 Export a C++ function with type qualification for 8-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_functionName, s_doc)
 Export a C++ function with type qualification for 9-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_functionName, s_doc)
 Export a C++ function with type qualification for 10-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_functionName, s_doc)
 Export a C++ function with type qualification for 11-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_functionName, s_doc)
 Export a C++ function with type qualification for 12-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_functionName, s_doc)
 Export a C++ function with type qualification for 13-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_functionName, s_doc)
 Export a C++ function with type qualification for 14-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_DOC_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_functionName, s_doc)
 Export a C++ function with type qualification for 15-parameter functions with custom name and documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME(i_module, f_cppFunction, t_return, t_params, s_functionName)
 Export a C++ function with type qualification and custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_0(i_module, f_cppFunction, t_return, s_functionName)
 Export a C++ function with type qualification for 0-parameter functions and custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_1(i_module, f_cppFunction, t_return, t_P1, s_functionName)
 Export a C++ function with type qualification for 1-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_2(i_module, f_cppFunction, t_return, t_P1, t_P2, s_functionName)
 Export a C++ function with type qualification for 2-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, s_functionName)
 Export a C++ function with type qualification for 3-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, s_functionName)
 Export a C++ function with type qualification for 4-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_functionName)
 Export a C++ function with type qualification for 5-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_functionName)
 Export a C++ function with type qualification for 6-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_functionName)
 Export a C++ function with type qualification for 7-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_functionName)
 Export a C++ function with type qualification for 8-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_functionName)
 Export a C++ function with type qualification for 9-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_functionName)
 Export a C++ function with type qualification for 10-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_functionName)
 Export a C++ function with type qualification for 11-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_functionName)
 Export a C++ function with type qualification for 12-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_functionName)
 Export a C++ function with type qualification for 13-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_functionName)
 Export a C++ function with type qualification for 14-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_NAME_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_functionName)
 Export a C++ function with type qualification for 15-parameter functions with custom name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC(i_module, f_cppFunction, t_return, t_params, s_doc)
 Export a C++ function with type qualification using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_0(i_module, f_cppFunction, t_return, s_doc)
 Export a C++ function with type qualification for 0-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_1(i_module, f_cppFunction, t_return, t_P1, s_doc)
 Export a C++ function with type qualification for 1-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_2(i_module, f_cppFunction, t_return, t_P1, t_P2, s_doc)
 Export a C++ function with type qualification for 2-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, s_doc)
 Export a C++ function with type qualification for 3-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, s_doc)
 Export a C++ function with type qualification for 4-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_doc)
 Export a C++ function with type qualification for 5-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_doc)
 Export a C++ function with type qualification for 6-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_doc)
 Export a C++ function with type qualification for 7-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_doc)
 Export a C++ function with type qualification for 8-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_doc)
 Export a C++ function with type qualification for 9-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_doc)
 Export a C++ function with type qualification for 10-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_doc)
 Export a C++ function with type qualification for 11-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_doc)
 Export a C++ function with type qualification for 12-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_doc)
 Export a C++ function with type qualification for 13-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_doc)
 Export a C++ function with type qualification for 14-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED_DOC_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_doc)
 Export a C++ function with type qualification for 15-parameter functions using the C++ function name with documentation.
 
#define PY_MODULE_FUNCTION_QUALIFIED(i_module, f_cppFunction, t_return, t_params)
 Export a C++ function with type qualification using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_0(i_module, f_cppFunction, t_return)
 Export a C++ function with type qualification for 0-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_1(i_module, f_cppFunction, t_return, t_P1)
 Export a C++ function with type qualification for 1-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_2(i_module, f_cppFunction, t_return, t_P1, t_P2)
 Export a C++ function with type qualification for 2-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_3(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3)
 Export a C++ function with type qualification for 3-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_4(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4)
 Export a C++ function with type qualification for 4-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_5(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5)
 Export a C++ function with type qualification for 5-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_6(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6)
 Export a C++ function with type qualification for 6-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_7(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7)
 Export a C++ function with type qualification for 7-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_8(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8)
 Export a C++ function with type qualification for 8-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_9(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9)
 Export a C++ function with type qualification for 9-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_10(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10)
 Export a C++ function with type qualification for 10-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_11(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11)
 Export a C++ function with type qualification for 11-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_12(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12)
 Export a C++ function with type qualification for 12-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_13(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13)
 Export a C++ function with type qualification for 13-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_14(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14)
 Export a C++ function with type qualification for 14-parameter functions using the C++ function name (no documentation).
 
#define PY_MODULE_FUNCTION_QUALIFIED_15(i_module, f_cppFunction, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15)
 Export a C++ function with type qualification for 15-parameter functions using the C++ function name (no documentation).
 
Class Declaration & Setup

Macros to declare and configure Python classes from C++ types.

These macros create the internal class definition objects that aggregate all the information needed to generate a Python type. Every C++ class that needs to be exposed to Python must be declared using one of these macros.

LASS supports two approaches for exporting C++ classes to Python:

  1. Native Python classes: C++ classes that directly inherit from PyObjectPlus and are designed to be Python-aware from the start.
  2. Shadow classes: Wrapper classes created for existing native C++ types using the shadow system (see PY_SHADOW_CLASS macros). The shadow class inherits from PyObjectPlus and wraps the original C++ type.

In both cases, the class parameter in these declaration macros refers to the Python binding class (either PyObjectPlus-derived or shadow wrapper), never the underlying native C++ type being shadowed.

All Python classes must use the PY_HEADER macro in their declaration and be declared in source files only, never in headers, to avoid multiple definition errors.

Native Python Class Usage:

// In header file (MyClass.h):
class MyClass: public PyObjectPlus
{
PY_HEADER(PyObjectPlus)
public:
MyClass();
void someMethod();
};
// In source file (MyClass.cpp):
PY_DECLARE_CLASS_NAME_DOC(MyClass, "MyClass", "A sample class")
// ... add methods, constructors, properties etc.
#define PY_DECLARE_CLASS_NAME_DOC(t_cppClass, s_className, s_doc)
Declare a Python class with full control over name and documentation.
#define PY_HEADER(t_parentClass)
Place as first line of your Pythonized class.

Shadow Class Usage:

// Existing non-Python-aware C++ class:
class LegacyClass
{
public:
void doSomething();
};
// Shadow wrapper class:
PY_SHADOW_CLASS(LASS_DLL_EXPORT, PyShadowLegacyClass, LegacyClass)
// Declaration (note: we declare the shadow class, not LegacyClass):
PY_DECLARE_CLASS_NAME_DOC(PyShadowLegacyClass, "LegacyClass", "Legacy class wrapper")
#define PY_DECLARE_CLASS_NAME_DOC(t_cppClass, s_className, s_doc)
 Declare a Python class with full control over name and documentation.
 
#define PY_DECLARE_CLASS_NAME(t_cppClass, s_className)
 Declare a Python class with custom name but no documentation.
 
#define PY_DECLARE_CLASS_DOC(i_cppClass, s_doc)
 Declare a Python class with automatic name and custom documentation.
 
#define PY_DECLARE_CLASS(i_cppClass)
 Declare a Python class with automatic name and no documentation.
 
#define PY_DECLARE_CLASS_EX(t_cppClass, s_className, i_uniqueClassIdentifier)
 Legacy class declaration macro.
 
Class Integration

Macros to add Python classes to modules.

These macros integrate class definitions with module definitions, making the classes available as types within the module namespace. Classes must first be declared using PY_DECLARE_CLASS_* macros before they can be added to modules.

#define PY_INJECT_CLASS_IN_MODULE(t_cppClass, i_module, s_doc)
 Inject a class into a module at runtime (deprecated).
 
#define PY_MODULE_CLASS(i_module, t_cppClass)
 Add a Python class to a module.
 
Static Constants

Macros to export static constant values as class attributes.

These macros allow you to expose compile-time constant values as static attributes of Python classes. The values are converted to Python objects using PyExportTraits and become accessible as class-level attributes in Python.

#define PY_CLASS_STATIC_CONST(i_cppClass, s_name, v_value)
 Export a static constant value as a class attribute.
 
Inner Classes

Macros for declaring inner classes (nested classes) within Python-exported classes.

These macros establish hierarchical class relationships where inner classes become attributes of their outer class in Python.

Note
Inner classes must be declared with PY_DECLARE_CLASS* macros before using these macros.

Usage pattern:

// Declare both classes first
PY_DECLARE_CLASS_DOC(Outer, "Outer class")
PY_DECLARE_CLASS_DOC(Inner, "Inner class")
// Establish inner class relationship
PY_CLASS_INNER_CLASS(Outer, Inner)
#define PY_DECLARE_CLASS_DOC(i_cppClass, s_doc)
Declare a Python class with automatic name and custom documentation.
#define PY_CLASS_INNER_CLASS(i_outerCppClass, i_innerCppClass)
Exports an inner class with default name and no documentation.
#define PY_CLASS_INNER_CLASS_EX(t_outerCppClass, t_innerCppClass, s_name, s_doc, i_uniqueSuffix)
 Exports an inner class with full customization of name, documentation, and symbol suffix.
 
#define PY_CLASS_INNER_CLASS_NAME_DOC(i_outerCppClass, i_innerCppClass, s_name, s_doc)
 Exports an inner class with custom name and documentation.
 
#define PY_CLASS_INNER_CLASS_NAME(i_outerCppClass, i_innerCppClass, s_name)
 Exports an inner class with custom name but no documentation.
 
#define PY_CLASS_INNER_CLASS_DOC(i_outerCppClass, i_innerCppClass, s_doc)
 Exports an inner class with default name and custom documentation.
 
#define PY_CLASS_INNER_CLASS(i_outerCppClass, i_innerCppClass)
 Exports an inner class with default name and no documentation.
 
Methods

Macros for exporting C++ class methods to Python with automatic type deduction and wrapper generation.

These macros handle member function calls, overloading, and method documentation.

Note
Overload resolution uses first-fit, not best-fit like C++. The first exported overload that matches the arguments will be called.
The documentation of an overloaded Python method will be the s_doc of the first exported overload.

Usage pattern:

// Declare the class first
PY_DECLARE_CLASS_DOC(Foo, "My class")
// Export methods - simple case
PY_CLASS_METHOD(Foo, someMethod)
// Export overloaded methods with same Python name
PY_CLASS_METHOD_EX(Foo, barA, "bar", nullptr, foo_bar_a)
PY_CLASS_METHOD_EX(Foo, barB, "bar", nullptr, foo_bar_b)
#define PY_CLASS_METHOD(i_cppClass, i_cppMethod)
Export a C++ method to Python using the C++ method name (no documentation).
#define PY_CLASS_METHOD_EX(t_cppClass, i_cppMethod, s_methodName, s_doc, i_dispatcher)
Export a C++ method to Python with full control over overloading.
#define PY_CLASS_PY_METHOD_EX(i_cppClass, i_cppMethod, s_methodName, s_doc)
 Export a C++ method that returns raw PyObject* to Python.
 
#define PY_CLASS_METHOD_EX(t_cppClass, i_cppMethod, s_methodName, s_doc, i_dispatcher)
 Export a C++ method to Python with full control over overloading.
 
#define PY_CLASS_METHOD_NAME_DOC(i_cppClass, i_cppMethod, s_methodName, s_doc)
 Export a C++ method to Python with custom name and documentation.
 
#define PY_CLASS_METHOD_NAME(i_cppClass, i_cppMethod, s_methodName)
 Export a C++ method to Python with custom name (no documentation).
 
#define PY_CLASS_METHOD_DOC(i_cppClass, i_cppMethod, s_doc)
 Export a C++ method to Python using the C++ method name with documentation.
 
#define PY_CLASS_METHOD(i_cppClass, i_cppMethod)
 Export a C++ method to Python using the C++ method name (no documentation).
 
Type-Qualified Method Export Macros

These macros export C++ class methods to Python with explicit type qualification to resolve method overload ambiguities.

They provide fine-grained control over method signatures and are essential when exporting overloaded methods that would otherwise be ambiguous.

Use these macros when you have overloaded C++ methods and need to specify exactly which overload to export to Python by providing explicit return and parameter types.

The macros are organized in layers:

#define PY_CLASS_METHOD_QUALIFIED_EX(t_cppClass, i_cppMethod, t_return, t_params, s_methodName, s_doc, i_dispatcher)
 Export a C++ method to Python with explicit type qualification to resolve ambiguities.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_0(t_cppClass, i_cppMethod, t_return, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 0-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_1(t_cppClass, i_cppMethod, t_return, t_P1, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 1-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_2(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 2-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_3(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 3-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_4(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 4-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_5(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 5-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_6(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 6-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_7(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 7-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_8(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 8-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_9(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 9-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_10(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 10-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_11(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 11-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_12(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 12-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_13(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 13-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_14(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 14-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_EX_15(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName, s_doc, i_dispatcher)
 Export a C++ method with type qualification for 15-parameter methods.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC(i_cppClass, i_cppMethod, t_return, t_params, s_methodName, s_doc)
 Export a C++ method with type qualification and custom name with documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_0(i_cppClass, i_cppMethod, t_return, s_methodName, s_doc)
 Export a C++ method with type qualification for 0-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_1(i_cppClass, i_cppMethod, t_return, t_P1, s_methodName, s_doc)
 Export a C++ method with type qualification for 1-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_methodName, s_doc)
 Export a C++ method with type qualification for 2-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_methodName, s_doc)
 Export a C++ method with type qualification for 3-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName, s_doc)
 Export a C++ method with type qualification for 4-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName, s_doc)
 Export a C++ method with type qualification for 5-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName, s_doc)
 Export a C++ method with type qualification for 6-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName, s_doc)
 Export a C++ method with type qualification for 7-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName, s_doc)
 Export a C++ method with type qualification for 8-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName, s_doc)
 Export a C++ method with type qualification for 9-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName, s_doc)
 Export a C++ method with type qualification for 10-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName, s_doc)
 Export a C++ method with type qualification for 11-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName, s_doc)
 Export a C++ method with type qualification for 12-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName, s_doc)
 Export a C++ method with type qualification for 13-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName, s_doc)
 Export a C++ method with type qualification for 14-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_DOC_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName, s_doc)
 Export a C++ method with type qualification for 15-parameter methods with custom name and documentation.
 
#define PY_CLASS_METHOD_QUALIFIED_NAME(i_cppClass, i_cppMethod, t_return, t_params, s_methodName)
 Export a C++ method with type qualification and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_0(i_cppClass, i_cppMethod, t_return, s_methodName)
 Export a C++ method with type qualification for 0-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_1(i_cppClass, i_cppMethod, t_return, t_P1, s_methodName)
 Export a C++ method with type qualification for 1-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_methodName)
 Export a C++ method with type qualification for 2-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_methodName)
 Export a C++ method with type qualification for 3-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName)
 Export a C++ method with type qualification for 4-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName)
 Export a C++ method with type qualification for 5-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName)
 Export a C++ method with type qualification for 6-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName)
 Export a C++ method with type qualification for 7-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName)
 Export a C++ method with type qualification for 8-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName)
 Export a C++ method with type qualification for 9-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName)
 Export a C++ method with type qualification for 10-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName)
 Export a C++ method with type qualification for 11-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName)
 Export a C++ method with type qualification for 12-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName)
 Export a C++ method with type qualification for 13-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName)
 Export a C++ method with type qualification for 14-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_NAME_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName)
 Export a C++ method with type qualification for 15-parameter methods and custom name (no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC(i_cppClass, i_cppMethod, t_return, t_params, s_doc)
 Export a C++ method with type qualification and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_0(i_cppClass, i_cppMethod, t_return, s_doc)
 Export a C++ method with type qualification for 0-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_1(i_cppClass, i_cppMethod, t_return, t_P1, s_doc)
 Export a C++ method with type qualification for 1-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_doc)
 Export a C++ method with type qualification for 2-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_doc)
 Export a C++ method with type qualification for 3-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_doc)
 Export a C++ method with type qualification for 4-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_doc)
 Export a C++ method with type qualification for 5-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_doc)
 Export a C++ method with type qualification for 6-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_doc)
 Export a C++ method with type qualification for 7-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_doc)
 Export a C++ method with type qualification for 8-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_doc)
 Export a C++ method with type qualification for 9-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_doc)
 Export a C++ method with type qualification for 10-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_doc)
 Export a C++ method with type qualification for 11-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_doc)
 Export a C++ method with type qualification for 12-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_doc)
 Export a C++ method with type qualification for 13-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_doc)
 Export a C++ method with type qualification for 14-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED_DOC_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_doc)
 Export a C++ method with type qualification for 15-parameter methods and custom documentation (method name derived from C++ method).
 
#define PY_CLASS_METHOD_QUALIFIED(i_cppClass, i_cppMethod, t_return, t_params)
 Export a C++ method with type qualification (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_0(i_cppClass, i_cppMethod, t_return)
 Export a C++ method with type qualification for 0-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_1(i_cppClass, i_cppMethod, t_return, t_P1)
 Export a C++ method with type qualification for 1-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2)
 Export a C++ method with type qualification for 2-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3)
 Export a C++ method with type qualification for 3-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4)
 Export a C++ method with type qualification for 4-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5)
 Export a C++ method with type qualification for 5-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6)
 Export a C++ method with type qualification for 6-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7)
 Export a C++ method with type qualification for 7-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8)
 Export a C++ method with type qualification for 8-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9)
 Export a C++ method with type qualification for 9-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10)
 Export a C++ method with type qualification for 10-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11)
 Export a C++ method with type qualification for 11-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12)
 Export a C++ method with type qualification for 12-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13)
 Export a C++ method with type qualification for 13-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14)
 Export a C++ method with type qualification for 14-parameter methods (method name derived from C++ method, no documentation).
 
#define PY_CLASS_METHOD_QUALIFIED_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15)
 Export a C++ method with type qualification for 15-parameter methods (method name derived from C++ method, no documentation).
 
Free Method Export Macros

Export C/C++ free functions as Python methods.

The first parameter of the free function becomes the implicit 'self' parameter and must be a pointer or reference (const or non-const) to the class being exported. This is particularly useful for shadow classes where adding methods directly to the class is undesirable or impossible.

#define PY_CLASS_FREE_METHOD_EX(t_cppClass, f_cppFreeMethod, s_methodName, s_doc, i_dispatcher)
 Export a C/C++ free function as a Python method with full control over all parameters.
 
#define PY_CLASS_FREE_METHOD_NAME_DOC(i_cppClass, f_cppFreeMethod, s_methodName, s_doc)
 Export a C/C++ free function as a Python method with custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_NAME(i_cppClass, f_cppFreeMethod, s_methodName)
 Export a C/C++ free function as a Python method with custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_DOC(i_cppClass, i_cppFreeMethod, s_doc)
 Export a C/C++ free function as a Python method with custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD(i_cppClass, i_cppFreeMethod)
 Export a C/C++ free function as a Python method (method name derived from function name, no documentation).
 
Type-Qualified Free Method Export Macros

Export C++ free functions as Python methods with explicit type qualification to resolve overload ambiguity.

These macros require explicit specification of return type and parameter types, making them suitable for overloaded free functions. The first parameter of the free function becomes the implicit 'self' parameter and must be a pointer or reference (const or non-const) to the class being exported.

#define PY_CLASS_FREE_METHOD_QUALIFIED_EX(t_cppClass, f_cppFreeMethod, t_return, t_params, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with explicit type qualification and full parameter control.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_0(t_cppClass, f_cppFreeMethod, t_return, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 0-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_1(t_cppClass, f_cppFreeMethod, t_return, t_P1, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 1-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_2(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 2-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_3(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 3-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_4(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 4-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_5(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 5-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_6(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 6-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_7(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 7-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_8(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 8-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_9(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 9-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_10(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 10-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_11(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 11-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_12(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 12-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_13(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 13-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_14(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 14-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_EX_15(t_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName, s_doc, i_dispatcher)
 Export a C++ free function as a Python method with type qualification for 15-parameter functions.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC(i_cppClass, f_cppFreeMethod, t_return, t_params, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_0(i_cppClass, f_cppFreeMethod, t_return, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 0-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_1(i_cppClass, f_cppFreeMethod, t_return, t_P1, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 1-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_2(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 2-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_3(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 3-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_4(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 4-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_5(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 5-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_6(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 6-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_7(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 7-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_8(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 8-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_9(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 9-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_10(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 10-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_11(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 11-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_12(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 12-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_13(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 13-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_14(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 14-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_DOC_15(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName, s_doc)
 Export a C++ free function as a Python method with type qualification for 15-parameter functions, custom name and documentation.
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME(i_cppClass, f_cppFreeMethod, t_return, t_params, s_methodName)
 Export a C++ free function as a Python method with type qualification and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_0(i_cppClass, f_cppFreeMethod, t_return, s_methodName)
 Export a C++ free function as a Python method with type qualification for 0-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_1(i_cppClass, f_cppFreeMethod, t_return, t_P1, s_methodName)
 Export a C++ free function as a Python method with type qualification for 1-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_2(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, s_methodName)
 Export a C++ free function as a Python method with type qualification for 2-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_3(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, s_methodName)
 Export a C++ free function as a Python method with type qualification for 3-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_4(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName)
 Export a C++ free function as a Python method with type qualification for 4-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_5(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName)
 Export a C++ free function as a Python method with type qualification for 5-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_6(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName)
 Export a C++ free function as a Python method with type qualification for 6-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_7(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName)
 Export a C++ free function as a Python method with type qualification for 7-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_8(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName)
 Export a C++ free function as a Python method with type qualification for 8-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_9(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName)
 Export a C++ free function as a Python method with type qualification for 9-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_10(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName)
 Export a C++ free function as a Python method with type qualification for 10-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_11(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName)
 Export a C++ free function as a Python method with type qualification for 11-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_12(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName)
 Export a C++ free function as a Python method with type qualification for 12-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_13(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName)
 Export a C++ free function as a Python method with type qualification for 13-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_14(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName)
 Export a C++ free function as a Python method with type qualification for 14-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_NAME_15(i_cppClass, f_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName)
 Export a C++ free function as a Python method with type qualification for 15-parameter functions and custom name (no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC(i_cppClass, i_cppFreeMethod, t_return, t_params, s_doc)
 Export a C++ free function as a Python method with type qualification and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_0(i_cppClass, i_cppFreeMethod, t_return, s_doc)
 Export a C++ free function as a Python method with type qualification for 0-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_1(i_cppClass, i_cppFreeMethod, t_return, t_P1, s_doc)
 Export a C++ free function as a Python method with type qualification for 1-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_2(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, s_doc)
 Export a C++ free function as a Python method with type qualification for 2-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_3(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, s_doc)
 Export a C++ free function as a Python method with type qualification for 3-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_4(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_doc)
 Export a C++ free function as a Python method with type qualification for 4-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_5(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_doc)
 Export a C++ free function as a Python method with type qualification for 5-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_6(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_doc)
 Export a C++ free function as a Python method with type qualification for 6-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_7(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_doc)
 Export a C++ free function as a Python method with type qualification for 7-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_8(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_doc)
 Export a C++ free function as a Python method with type qualification for 8-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_9(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_doc)
 Export a C++ free function as a Python method with type qualification for 9-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_10(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_doc)
 Export a C++ free function as a Python method with type qualification for 10-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_11(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_doc)
 Export a C++ free function as a Python method with type qualification for 11-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_12(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_doc)
 Export a C++ free function as a Python method with type qualification for 12-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_13(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_doc)
 Export a C++ free function as a Python method with type qualification for 13-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_14(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_doc)
 Export a C++ free function as a Python method with type qualification for 14-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_DOC_15(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_doc)
 Export a C++ free function as a Python method with type qualification for 15-parameter functions and custom documentation (method name derived from function name).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED(i_cppClass, i_cppFreeMethod, t_return, t_params)
 Export a C++ free function as a Python method with type qualification (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_0(i_cppClass, i_cppFreeMethod, t_return)
 Export a C++ free function as a Python method with type qualification for 0-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_1(i_cppClass, i_cppFreeMethod, t_return, t_P1)
 Export a C++ free function as a Python method with type qualification for 1-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_2(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2)
 Export a C++ free function as a Python method with type qualification for 2-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_3(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3)
 Export a C++ free function as a Python method with type qualification for 3-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_4(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4)
 Export a C++ free function as a Python method with type qualification for 4-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_5(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5)
 Export a C++ free function as a Python method with type qualification for 5-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_6(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6)
 Export a C++ free function as a Python method with type qualification for 6-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_7(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7)
 Export a C++ free function as a Python method with type qualification for 7-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_8(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8)
 Export a C++ free function as a Python method with type qualification for 8-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_9(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9)
 Export a C++ free function as a Python method with type qualification for 9-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_10(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10)
 Export a C++ free function as a Python method with type qualification for 10-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_11(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11)
 Export a C++ free function as a Python method with type qualification for 11-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_12(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12)
 Export a C++ free function as a Python method with type qualification for 12-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_13(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13)
 Export a C++ free function as a Python method with type qualification for 13-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_14(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14)
 Export a C++ free function as a Python method with type qualification for 14-parameter functions (method name derived from function name, no documentation).
 
#define PY_CLASS_FREE_METHOD_QUALIFIED_15(i_cppClass, i_cppFreeMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15)
 Export a C++ free function as a Python method with type qualification for 15-parameter functions (method name derived from function name, no documentation).
 
Casting Method Export Macros (Deprecated)
Deprecated
These casting method macros are deprecated. Use the regular or free method export macros instead.

Export C++ methods to Python with custom casting policies for type conversion. These macros allow on-the-fly type conversion using casting operators like PointerCast and CopyCast. However, these macros are deprecated and should be avoided in new code.

#define PY_CLASS_METHOD_CAST_EX_0(t_cppClass, i_cppMethod, t_return, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method to Python with custom casting policy and full parameter control.
 
#define PY_CLASS_METHOD_CAST_EX_1(t_cppClass, i_cppMethod, t_return, t_P1, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 1-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_2(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 2-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_3(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 3-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_4(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 4-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_5(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 5-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_6(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 6-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_7(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 7-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_8(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 8-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_9(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 9-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_10(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 10-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_11(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 11-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_12(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 12-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_13(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 13-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_14(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 14-parameter methods.
 
#define PY_CLASS_METHOD_CAST_EX_15(t_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName, s_doc, i_dispatcher, i_typename)
 Export a C++ method with casting policy for 15-parameter methods.
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_0(i_cppClass, i_cppMethod, t_return, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_0().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_1(i_cppClass, i_cppMethod, t_return, t_P1, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_1().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_2().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_3().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_4().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_5().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_6().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_7().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_8().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_9().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_10().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_11().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_12().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_13().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_14().
 
#define PY_CLASS_METHOD_CAST_NAME_DOC_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName, s_doc)
 Convenience wrapper for PY_CLASS_METHOD_CAST_EX_15().
 
#define PY_CLASS_METHOD_CAST_NAME(i_cppClass, i_cppMethod, t_return, t_params, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_0(i_cppClass, i_cppMethod, t_return, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_1(i_cppClass, i_cppMethod, t_return, t_P1, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_NAME_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_methodName)
 Convenience wrapper with no documentation.
 
#define PY_CLASS_METHOD_CAST_DOC(i_cppClass, i_cppMethod, t_return, t_params, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_0(i_cppClass, i_cppMethod, t_return, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_1(i_cppClass, i_cppMethod, t_return, t_P1, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST_DOC_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15, s_doc)
 Convenience wrapper with method name derived from C++ method.
 
#define PY_CLASS_METHOD_CAST(i_cppClass, i_cppMethod, t_return, t_params)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_0(i_cppClass, i_cppMethod, t_return)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_1(i_cppClass, i_cppMethod, t_return, t_P1)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_2(i_cppClass, i_cppMethod, t_return, t_P1, t_P2)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_3(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_4(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_5(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_6(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_7(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_8(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_9(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_10(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_11(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_12(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_13(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_14(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14)
 Basic convenience wrapper with minimal parameters.
 
#define PY_CLASS_METHOD_CAST_15(i_cppClass, i_cppMethod, t_return, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15)
 Basic convenience wrapper with minimal parameters.
 
Static Method Export Macros

Export C++ static methods or free functions as Python static methods (class methods).

Static methods are called on the class itself rather than on instances, and do not receive an implicit 'self' parameter. Both C++ static member functions and free functions can be exported as static methods.

#define PY_CLASS_STATIC_METHOD_EX(t_cppClass, f_cppFunction, s_methodName, s_doc, i_dispatcher)
 Export a C++ function as a Python static method with full parameter control.
 
#define PY_CLASS_STATIC_METHOD_DOC(i_cppClass, i_cppMethod, s_doc)
 Export a C++ static method with custom documentation (method name derived from C++ method).
 
#define PY_CLASS_STATIC_METHOD_NAME_DOC(i_cppClass, i_cppMethod, s_methodName, s_doc)
 Export a C++ static method with custom name and documentation.
 
#define PY_CLASS_STATIC_METHOD_NAME(i_cppClass, i_cppMethod, s_methodName)
 Export a C++ static method with custom name (no documentation).
 
#define PY_CLASS_STATIC_METHOD(i_cppClass, i_cppMethod)
 Export a C++ static method (method name derived from C++ method, no documentation).
 
Data Member Export Macros
#define PY_CLASS_MEMBER_RW_EX(t_cppClass, i_cppGetter, i_cppSetter, s_memberName, s_doc, i_dispatcher)
 Export getter/setter method pair as read/write Python property with full control.
 
#define PY_CLASS_MEMBER_RW_NAME_DOC(t_cppClass, i_cppGetter, i_cppSetter, s_memberName, s_doc)
 Export getter/setter method pair as read/write Python property with custom name and documentation.
 
#define PY_CLASS_MEMBER_RW_NAME(t_cppClass, i_cppGetter, i_cppSetter, s_memberName)
 Export getter/setter method pair as read/write Python property with custom name (no documentation).
 
#define PY_CLASS_MEMBER_RW_DOC(t_cppClass, i_cppGetter, i_cppSetter, s_doc)
 Export getter/setter method pair as read/write Python property (name derived from getter, with documentation).
 
#define PY_CLASS_MEMBER_RW(t_cppClass, i_cppGetter, i_cppSetter)
 Export getter/setter method pair as read/write Python property (name derived from getter, no documentation).
 
#define PY_CLASS_MEMBER_R_EX(t_cppClass, i_cppGetter, s_memberName, s_doc, i_dispatcher)
 Export getter method as read-only Python property with full control.
 
#define PY_CLASS_MEMBER_R_NAME_DOC(t_cppClass, i_cppGetter, s_memberName, s_doc)
 Export getter method as read-only Python property with custom name and documentation.
 
#define PY_CLASS_MEMBER_R_NAME(t_cppClass, i_cppGetter, s_memberName)
 Export getter method as read-only Python property with custom name (no documentation).
 
#define PY_CLASS_MEMBER_R_DOC(t_cppClass, i_cppGetter, s_doc)
 Export getter method as read-only Python property (name derived from getter, with documentation).
 
#define PY_CLASS_MEMBER_R(t_cppClass, i_cppGetter)
 Export getter method as read-only Python property using method name.
 
#define PY_CLASS_FREE_MEMBER_RW_EX(t_cppClass, i_cppFreeGetter, i_cppFreeSetter, s_memberName, s_doc, i_dispatcher)
 Export free function accessors as read-write Python property.
 
#define PY_CLASS_FREE_MEMBER_RW_NAME_DOC(t_cppClass, i_cppFreeGetter, i_cppFreeSetter, s_memberName, s_doc)
 Export free function accessors as read-write Python property with custom name and documentation.
 
#define PY_CLASS_FREE_MEMBER_RW_NAME(t_cppClass, i_cppFreeGetter, i_cppFreeSetter, s_memberName)
 Export free function accessors as read-write Python property with custom name.
 
#define PY_CLASS_FREE_MEMBER_RW_DOC(t_cppClass, i_cppFreeGetter, i_cppFreeSetter, s_doc)
 Export free function accessors as read-write Python property using function name.
 
#define PY_CLASS_FREE_MEMBER_RW(t_cppClass, i_cppFreeGetter, i_cppFreeSetter)
 Export free function accessors as read-write Python property using function name.
 
#define PY_CLASS_FREE_MEMBER_R_EX(t_cppClass, i_freeCppGetter, s_memberName, s_doc, i_dispatcher)
 Export free function accessor as read-only Python property.
 
#define PY_CLASS_FREE_MEMBER_R_NAME_DOC(t_cppClass, i_freeCppGetter, s_memberName, s_doc)
 Export free function accessor as read-only Python property with custom name and documentation.
 
#define PY_CLASS_FREE_MEMBER_R_NAME(t_cppClass, i_freeCppGetter, s_memberName)
 Export free function accessor as read-only Python property with custom name.
 
#define PY_CLASS_FREE_MEMBER_R_DOC(t_cppClass, i_freeCppGetter, s_doc)
 Export free function accessor as read-only Python property using function name.
 
#define PY_CLASS_FREE_MEMBER_R(t_cppClass, i_freeCppGetter)
 Export free function accessor as read-only Python property using function name.
 
#define PY_CLASS_PUBLIC_MEMBER_EX(t_cppClass, i_cppMember, s_memberName, s_doc, i_dispatcher)
 Export public data member as read-write Python property.
 
#define PY_CLASS_PUBLIC_MEMBER_NAME_DOC(i_cppClass, i_cppMember, s_memberName, s_doc)
 Export public data member as read-write Python property with custom name and documentation.
 
#define PY_CLASS_PUBLIC_MEMBER_NAME(i_cppClass, i_cppMember, s_memberName)
 Export public data member as read-write Python property with custom name.
 
#define PY_CLASS_PUBLIC_MEMBER_DOC(i_cppClass, i_cppMember, s_doc)
 Export public data member as read-write Python property using member name.
 
#define PY_CLASS_PUBLIC_MEMBER(i_cppClass, i_cppMember)
 Export public data member as read-write Python property using member name.
 
#define PY_CLASS_PUBLIC_MEMBER_R_EX(t_cppClass, i_cppMember, s_memberName, s_doc, i_dispatcher)
 Export public data member as read-only Python property.
 
#define PY_CLASS_PUBLIC_MEMBER_R_NAME_DOC(i_cppClass, i_cppMember, s_memberName, s_doc)
 Export public data member as read-only Python property with custom name and documentation.
 
#define PY_CLASS_PUBLIC_MEMBER_R_NAME(i_cppClass, i_cppMember, s_memberName)
 Export public data member as read-only Python property with custom name.
 
#define PY_CLASS_PUBLIC_MEMBER_R_DOC(i_cppClass, i_cppMember, s_doc)
 Export public data member as read-only Python property using member name.
 
#define PY_CLASS_PUBLIC_MEMBER_R(i_cppClass, i_cppMember)
 Export public data member as read-only Python property using member name.
 
Constructor Export Macros

Export C++ constructors directly as Python class constructors.

These macros make abstract Python classes concrete by adding constructors that can create instances from Python code using the actual C++ constructors.

Standard Constructor Export:

Convenience Macros by Parameter Count:

#define PY_CLASS_CONSTRUCTOR_EX(t_cppClass, t_params, i_dispatcher)
 Export C++ constructor as Python class constructor with full control.
 
#define PY_CLASS_CONSTRUCTOR(i_cppClass, t_params)
 Export C++ constructor as Python class constructor.
 
#define PY_CLASS_CONSTRUCTOR_0(t_cppClass)
 Export C++ default constructor as Python class constructor.
 
#define PY_CLASS_CONSTRUCTOR_1(t_cppClass, t_P1)
 Export C++ constructor as Python class constructor with 1 parameters.
 
#define PY_CLASS_CONSTRUCTOR_2(t_cppClass, t_P1, t_P2)
 Export C++ constructor as Python class constructor with 2 parameters.
 
#define PY_CLASS_CONSTRUCTOR_3(t_cppClass, t_P1, t_P2, t_P3)
 Export C++ constructor as Python class constructor with 3 parameters.
 
#define PY_CLASS_CONSTRUCTOR_4(t_cppClass, t_P1, t_P2, t_P3, t_P4)
 Export C++ constructor as Python class constructor with 4 parameters.
 
#define PY_CLASS_CONSTRUCTOR_5(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5)
 Export C++ constructor as Python class constructor with 5 parameters.
 
#define PY_CLASS_CONSTRUCTOR_6(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6)
 Export C++ constructor as Python class constructor with 6 parameters.
 
#define PY_CLASS_CONSTRUCTOR_7(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7)
 Export C++ constructor as Python class constructor with 7 parameters.
 
#define PY_CLASS_CONSTRUCTOR_8(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8)
 Export C++ constructor as Python class constructor with 8 parameters.
 
#define PY_CLASS_CONSTRUCTOR_9(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9)
 Export C++ constructor as Python class constructor with 9 parameters.
 
#define PY_CLASS_CONSTRUCTOR_10(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10)
 Export C++ constructor as Python class constructor with 10 parameters.
 
#define PY_CLASS_CONSTRUCTOR_11(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11)
 Export C++ constructor as Python class constructor with 11 parameters.
 
#define PY_CLASS_CONSTRUCTOR_12(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12)
 Export C++ constructor as Python class constructor with 12 parameters.
 
#define PY_CLASS_CONSTRUCTOR_13(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13)
 Export C++ constructor as Python class constructor with 13 parameters.
 
#define PY_CLASS_CONSTRUCTOR_14(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14)
 Export C++ constructor as Python class constructor with 14 parameters.
 
#define PY_CLASS_CONSTRUCTOR_15(t_cppClass, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15)
 Export C++ constructor as Python class constructor with 15 parameters.
 
Free Function Constructor Export Macros

Export factory functions as Python class constructors.

These macros allow C++ functions that return instances of a class to be used as Python constructors. This is useful when you need special construction logic or when the actual constructor is not accessible from Python.

These factory function constructors appear as regular constructors to Python code, but are implemented using C++ functions rather than actual constructors. The functions must return an instance of the target class.

#define PY_CLASS_FREE_CONSTRUCTOR_EX(t_cppClass, f_cppFunction, t_params, i_dispatcher)
 Export C++ factory function as Python constructor with full control.
 
#define PY_CLASS_FREE_CONSTRUCTOR(i_cppClass, f_cppFunction, t_params)
 Convenience wrapper for PY_CLASS_FREE_CONSTRUCTOR_EX.
 
#define PY_CLASS_FREE_CONSTRUCTOR_0(t_cppClass, f_cppFunction)
 Export C++ factory function as Python constructor with 0 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_1(t_cppClass, f_cppFunction, t_P1)
 Export C++ factory function as Python constructor with 1 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_2(t_cppClass, f_cppFunction, t_P1, t_P2)
 Export C++ factory function as Python constructor with 2 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_3(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3)
 Export C++ factory function as Python constructor with 3 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_4(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4)
 Export C++ factory function as Python constructor with 4 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_5(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5)
 Export C++ factory function as Python constructor with 5 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_6(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6)
 Export C++ factory function as Python constructor with 6 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_7(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7)
 Export C++ factory function as Python constructor with 7 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_8(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8)
 Export C++ factory function as Python constructor with 8 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_9(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9)
 Export C++ factory function as Python constructor with 9 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_10(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10)
 Export C++ factory function as Python constructor with 10 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_11(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11)
 Export C++ factory function as Python constructor with 11 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_12(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12)
 Export C++ factory function as Python constructor with 12 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_13(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13)
 Export C++ factory function as Python constructor with 13 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_14(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14)
 Export C++ factory function as Python constructor with 14 parameters.
 
#define PY_CLASS_FREE_CONSTRUCTOR_15(t_cppClass, f_cppFunction, t_P1, t_P2, t_P3, t_P4, t_P5, t_P6, t_P7, t_P8, t_P9, t_P10, t_P11, t_P12, t_P13, t_P14, t_P15)
 Export C++ factory function as Python constructor with 15 parameters.
 

Detailed Description

Author
Bram de Greve (bram@.nosp@m.coca.nosp@m.mware.nosp@m..com)
Tom De Muer (tom@c.nosp@m.ocam.nosp@m.ware..nosp@m.com)

*** BEGIN LICENSE INFORMATION ***

The contents of this file are subject to the Common Public Attribution License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://lass.sourceforge.net/cpal-license. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

The Original Code is LASS - Library of Assembled Shared Sources.

The Initial Developer of the Original Code is Bram de Greve and Tom De Muer. The Original Developer is the Initial Developer.

All portions of the code written by the Initial Developer are: Copyright (C) 2004-2025 the Initial Developer. All Rights Reserved.

Contributor(s):

Alternatively, the contents of this file may be used under the terms of the GNU General Public License Version 2 or later (the GPL), in which case the provisions of GPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the GPL and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the GPL.

*** END LICENSE INFORMATION ***

Definition in file pyobject_macros.h.