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:
Marcelo Matus 2005-10-19 10:56:37 +00:00
commit 98d98784ae
6 changed files with 136 additions and 56 deletions

View file

@ -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;
}
};