/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/funcptr_cpp.i
35 строк
2 KB
Olly Betts
Move #2087 regression test to cpp11_noexcept.i
27 июл 2024, 08:53
27 июл 2024, 08:53
44990e2
Код
Авторство
О чём код?
%module funcptr_cpp %{ #if defined(__SUNPRO_CC) #pragma error_messages (off, badargtype2w) /* Formal argument ... is being passed extern "C" ... */ #endif %} %inline %{ int addByValue(const int &a, int b) { return a+b; } int * addByPointer(const int &a, int b) { static int val; val = a+b; return &val; } int & addByReference(const int &a, int b) { static int val; val = a+b; return val; } int call1(int (*d)(const int &, int), int a, int b) { return d(a, b); } int call2(int * (*d)(const int &, int), int a, int b) { return *d(a, b); } int call3(int & (*d)(const int &, int), int a, int b) { return d(a, b); } int call4(int & (*d)(int &, int *), int a, int b) { return d(a, &b); } int call5(int & (*d)(int &, int const * const), int a, int b) { return d(a, &b); } int callconst1(int (* const d)(const int &, int), int a, int b) { return d(a, b); } %} %constant int (*ADD_BY_VALUE)(const int &, int) = addByValue; %constant int * (*ADD_BY_POINTER)(const int &, int) = addByPointer; %constant int & (*ADD_BY_REFERENCE)(const int &, int) = addByReference; %constant int (* const ADD_BY_VALUE_C)(const int &, int) = addByValue; %inline %{ typedef int AddByValueTypedef(const int &a, int b); typedef int * AddByPointerTypedef(const int &a, int b); typedef int & AddByReferenceTypedef(const int &a, int b); void *typedef_call1(AddByValueTypedef *& precallback, AddByValueTypedef * postcallback) { return 0; } void *typedef_call2(AddByPointerTypedef *& precallback, AddByPointerTypedef * postcallback) { return 0; } void *typedef_call3(AddByReferenceTypedef *& precallback, AddByReferenceTypedef * postcallback) { return 0; } %}