detecting polymorphic virtual methods properly

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5511 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2003-12-09 10:36:15 +00:00
commit 833b2f7f0a
6 changed files with 206 additions and 3 deletions

View file

@ -0,0 +1,65 @@
%module(directors="1") director_detect
%{
#include <string>
#include <iostream>
%}
%include "std_string.i"
%feature("director") Bar;
%newobject Foo::cloner();
%newobject Bar::cloner();
%inline {
namespace foo { typedef int Int; }
struct A
{
};
typedef A B;
struct Foo {
virtual ~Foo() {}
virtual Foo* cloner() = 0;
virtual int get_value() = 0;
virtual A* get_class() = 0;
virtual void just_do_it() = 0;
};
class Bar : public Foo
{
public:
Foo* base()
{
return this;
}
Bar* cloner()
{
return new Bar();
}
foo::Int get_value()
{
return 1;
}
B* get_class()
{
return new B();
}
void just_do_it()
{
}
};
}