diff options
Diffstat (limited to 'Examples/test-suite/python_annotations_c.i')
-rw-r--r-- | Examples/test-suite/python_annotations_c.i | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Examples/test-suite/python_annotations_c.i b/Examples/test-suite/python_annotations_c.i new file mode 100644 index 000000000..c023e4d07 --- /dev/null +++ b/Examples/test-suite/python_annotations_c.i @@ -0,0 +1,40 @@ +%module python_annotations_c + +// Tests the C/C++ annotations that were automatically added by using -py3 before swig-4.1.0 +// In swig-4.1.0 and later, the feature below is needed as the -py3 option was dropped +%feature("python:annotations", "c") mymethod; +%feature("python:annotations", "c") makeT<short>; +%feature("python:annotations", "c") global_ints; + +%inline %{ +namespace Space { +template<class T> +struct Template { + void mymethod(int, Template* tt) {} +}; +} +template<typename T> +Space::Template<T> makeT(int x) { + return Space::Template<T>(); +}; +int *global_ints(int &ri, Space::Template<short> t) { return &ri; } +int *global_overloaded(int &ri) { return &ri; } +int *global_overloaded() { return NULL; } +int *no_annotations(int &ri, const char *c) { return NULL; } +%} +%template(TemplateShort) Space::Template<short>; +%template(MakeShort) makeT<short>; + +%inline %{ +#ifdef SWIGPYTHON_BUILTIN +int is_python_builtin() { return 1; } +#else +int is_python_builtin() { return 0; } +#endif + +#if defined SWIGPYTHON_FASTPROXY +int is_python_fastproxy() { return 1; } +#else +int is_python_fastproxy() { return 0; } +#endif +%} |