/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/cpp11_function_objects.i
46 строк
1 KB
Olly Betts
[ocaml] Rename value in cpp11_function_objects.i to avoid clash
06 июл 2023, 04:45
06 июл 2023, 04:45
eecee6a
Код
Авторство
О чём код?
/* This testcase checks whether SWIG correctly parses function objects and the templates for the functions (signature). Function objects are objects which overload the operator() function. The std::function does not provide any seamless support in the target languages yet. */ %module(directors="1") cpp11_function_objects %rename(__call__) Test::operator(); %feature("director") Test; /* We had to rename this in the C++ API being wrapped due to a collision with * a value typedef in newer ocaml headers, so use %rename to avoid having to * update all the runme files which use it. */ %rename(value) Test::the_value; %inline %{ class Test { public: int the_value; virtual void operator()(int x, int y) { the_value=x+y; } Test() : the_value(0) {} virtual ~Test() {} }; Test test; #include <functional> std::function<void ( int, int )> pF = test; int testit1(Test &new_test, int a, int b) { pF = std::ref(new_test); pF(a, b); return new_test.the_value; } int testit2(int a, int b) { test(a, b); return test.the_value; } %}