update swig on windows
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
/* 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;
|
||||
|
||||
%inline %{
|
||||
class Test {
|
||||
public:
|
||||
int value;
|
||||
|
||||
virtual void operator()(int x, int y) {
|
||||
value=x+y;
|
||||
}
|
||||
Test() : 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.value;
|
||||
}
|
||||
|
||||
int testit2(int a, int b) {
|
||||
test(a, b);
|
||||
return test.value;
|
||||
}
|
||||
|
||||
%}
|
||||
|
||||
Reference in New Issue
Block a user