using better names for frob
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5664 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
e810800783
commit
e524a03a55
6 changed files with 40 additions and 34 deletions
|
|
@ -112,6 +112,7 @@ CPP_TEST_CASES += \
|
||||||
director_basic \
|
director_basic \
|
||||||
director_detect \
|
director_detect \
|
||||||
director_exception \
|
director_exception \
|
||||||
|
director_frob \
|
||||||
director_finalizer \
|
director_finalizer \
|
||||||
director_nested \
|
director_nested \
|
||||||
director_protected \
|
director_protected \
|
||||||
|
|
|
||||||
39
Examples/test-suite/director_frob.i
Normal file
39
Examples/test-suite/director_frob.i
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
%module(directors="1") frob;
|
||||||
|
|
||||||
|
%header %{
|
||||||
|
#include <iostream>
|
||||||
|
%}
|
||||||
|
|
||||||
|
%feature("director");
|
||||||
|
%feature("nodirector") Bravo::abs_method(); // ok
|
||||||
|
%feature("director") Charlie::abs_method(); // ok
|
||||||
|
%feature("nodirector") Delta::abs_method(); // doesn't work
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
|
||||||
|
struct Alpha
|
||||||
|
{
|
||||||
|
virtual ~Alpha() { };
|
||||||
|
virtual const char* abs_method() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Bravo : Alpha
|
||||||
|
{
|
||||||
|
const char* abs_method()
|
||||||
|
{
|
||||||
|
return "Bravo::abs_method()";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Charlie : Bravo
|
||||||
|
{
|
||||||
|
const char* abs_method()
|
||||||
|
{
|
||||||
|
return "Charlie::abs_method()";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Delta : Charlie
|
||||||
|
{
|
||||||
|
};
|
||||||
|
%}
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
%module(directors="1") frob;
|
|
||||||
|
|
||||||
%header %{
|
|
||||||
#include <iostream>
|
|
||||||
%}
|
|
||||||
|
|
||||||
%feature("director") Alpha;
|
|
||||||
%feature("director") Bravo;
|
|
||||||
|
|
||||||
%feature("nodirector") Bravo::abs_method();
|
|
||||||
|
|
||||||
%inline %{
|
|
||||||
class Alpha
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Alpha() { }
|
|
||||||
virtual ~Alpha() { };
|
|
||||||
virtual const char* abs_method() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Bravo : public Alpha
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Bravo() { }
|
|
||||||
virtual ~Bravo() { };
|
|
||||||
virtual const char* abs_method();
|
|
||||||
};
|
|
||||||
|
|
||||||
const char*
|
|
||||||
Bravo::abs_method()
|
|
||||||
{
|
|
||||||
return "Bravo::abs_method()";
|
|
||||||
}
|
|
||||||
%}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue