From: Marcelo M. <mar...@us...> - 2005-10-19 10:56:45
|
Update of /cvsroot/swig/SWIG/Examples/test-suite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4453 Modified Files: director_basic.i Log Message: add more cases Index: director_basic.i =================================================================== RCS file: /cvsroot/swig/SWIG/Examples/test-suite/director_basic.i,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** director_basic.i 19 Sep 2005 08:52:32 -0000 1.9 --- director_basic.i 19 Oct 2005 10:56:37 -0000 1.10 *************** *** 1,66 **** ! %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(); } ! }; ! %} ! %include "std_string.i" ! %feature("director") Foo; ! class Foo { ! public: ! virtual ~Foo() {} ! virtual std::string ping() { return "Foo::ping()"; } ! virtual std::string pong() { return "Foo::pong();" + ping(); } ! }; ! %{ ! #include <complex> ! %} ! %feature("director"); ! // basic renaming ! %rename(rg) A::gg; ! %feature("nodirector") hi::A1::gg; ! %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;} ! }; ! 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; class MyClass { --- 1,76 ---- ! %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(); } ! }; ! %} ! %include "std_string.i" ! %feature("director") Foo; ! class Foo { ! public: ! virtual ~Foo() {} ! virtual std::string ping() { return "Foo::ping()"; } ! virtual std::string pong() { return "Foo::pong();" + ping(); } ! }; ! %{ ! #include <complex> ! %} ! %feature("director"); ! // basic renaming ! %rename(rg) A::gg; ! %feature("nodirector") hi::A1::gg; ! %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;} ! }; ! 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) ! { ! } ! }; ! ! class MyClass { *************** *** 77,80 **** --- 87,106 ---- { } + + 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; + } }; |