add more cases
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7686 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
5af71f22b3
commit
98d98784ae
6 changed files with 136 additions and 56 deletions
|
|
@ -1,67 +1,77 @@
|
|||
%module(directors="1") director_basic
|
||||
%{
|
||||
#include <string>
|
||||
%module(directors="1") director_basic
|
||||
%{
|
||||
#include <string>
|
||||
|
||||
class Foo {
|
||||
public:
|
||||
virtual ~Foo() {}
|
||||
virtual std::string ping() { return "Foo::ping()"; }
|
||||
virtual std::string pong() { return "Foo::pong();" + ping(); }
|
||||
};
|
||||
class Foo {
|
||||
public:
|
||||
virtual ~Foo() {}
|
||||
virtual std::string ping() { return "Foo::ping()"; }
|
||||
virtual std::string pong() { return "Foo::pong();" + ping(); }
|
||||
};
|
||||
|
||||
%}
|
||||
%}
|
||||
|
||||
%include "std_string.i"
|
||||
%include "std_string.i"
|
||||
|
||||
%feature("director") Foo;
|
||||
%feature("director") Foo;
|
||||
|
||||
|
||||
class Foo {
|
||||
public:
|
||||
virtual ~Foo() {}
|
||||
virtual std::string ping() { return "Foo::ping()"; }
|
||||
virtual std::string pong() { return "Foo::pong();" + ping(); }
|
||||
};
|
||||
class Foo {
|
||||
public:
|
||||
virtual ~Foo() {}
|
||||
virtual std::string ping() { return "Foo::ping()"; }
|
||||
virtual std::string pong() { return "Foo::pong();" + ping(); }
|
||||
};
|
||||
|
||||
%{
|
||||
#include <complex>
|
||||
%}
|
||||
%feature("director");
|
||||
%{
|
||||
#include <complex>
|
||||
%}
|
||||
%feature("director");
|
||||
|
||||
// basic renaming
|
||||
%rename(rg) A::gg;
|
||||
%feature("nodirector") hi::A1::gg;
|
||||
// basic renaming
|
||||
%rename(rg) A::gg;
|
||||
%feature("nodirector") hi::A1::gg;
|
||||
|
||||
%inline %{
|
||||
%inline %{
|
||||
|
||||
struct A{
|
||||
A(std::complex<int> i, double d=0.0) {}
|
||||
A(int i, bool j=false) {}
|
||||
virtual ~A() {}
|
||||
|
||||
virtual int f(int i=0) {return i;}
|
||||
virtual int gg(int i=0) {return i;}
|
||||
};
|
||||
struct A{
|
||||
A(std::complex<int> i, double d=0.0) {}
|
||||
A(int i, bool j=false) {}
|
||||
virtual ~A() {}
|
||||
|
||||
namespace hi {
|
||||
virtual int f(int i=0) {return i;}
|
||||
virtual int gg(int i=0) {return i;}
|
||||
};
|
||||
|
||||
struct A1 : public A {
|
||||
A1(std::complex<int> i, double d=0.0) : A(i, d) {}
|
||||
A1(int i, bool j=false) : A(i, j) {}
|
||||
|
||||
virtual int ff(int i = 0) {return i;}
|
||||
};
|
||||
}
|
||||
namespace hi {
|
||||
|
||||
struct A1 : public A {
|
||||
A1(std::complex<int> i, double d=0.0) : A(i, d) {}
|
||||
A1(int i, bool j=false) : A(i, j) {}
|
||||
|
||||
virtual int ff(int i = 0) {return i;}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
%}
|
||||
|
||||
|
||||
%feature("director") MyClass;
|
||||
|
||||
%inline %{
|
||||
|
||||
typedef void VoidType;
|
||||
|
||||
struct Bar
|
||||
{
|
||||
int x;
|
||||
Bar(int _x = 0) : x(_x)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
%}
|
||||
|
||||
|
||||
%feature("director") MyClass;
|
||||
|
||||
%inline %{
|
||||
|
||||
typedef void VoidType;
|
||||
|
||||
class MyClass {
|
||||
public:
|
||||
|
|
@ -76,6 +86,22 @@ public:
|
|||
virtual ~MyClass()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Bar vmethod(Bar b)
|
||||
{
|
||||
b.x += 13;
|
||||
return b;
|
||||
}
|
||||
|
||||
Bar cmethod(const Bar &b)
|
||||
{
|
||||
return vmethod(b);
|
||||
}
|
||||
|
||||
static MyClass *get_self(MyClass *c)
|
||||
{
|
||||
return c;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue