Test %extend and nspace feature
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11929 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
9dd30264f6
commit
deafe98dc4
5 changed files with 135 additions and 0 deletions
50
Examples/test-suite/nspace_extend.i
Normal file
50
Examples/test-suite/nspace_extend.i
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
// Test the nspace feature and %extend
|
||||
%module nspace_extend
|
||||
|
||||
// nspace feature only supported by these languages
|
||||
#if defined(SWIGJAVA) || defined(SWIGCSHARP)
|
||||
|
||||
%nspace;
|
||||
|
||||
%extend Outer::Inner1::Color {
|
||||
Color() { return new Outer::Inner1::Color(); }
|
||||
virtual ~Color() { delete $self; }
|
||||
static Color* create() { return new Outer::Inner1::Color(); }
|
||||
Color(const Color& other) { return new Outer::Inner1::Color(other); }
|
||||
|
||||
void colorInstanceMethod(double d) {}
|
||||
static void colorStaticMethod(double d) {}
|
||||
}
|
||||
|
||||
%inline %{
|
||||
|
||||
namespace Outer {
|
||||
namespace Inner1 {
|
||||
struct Color {
|
||||
};
|
||||
}
|
||||
|
||||
namespace Inner2 {
|
||||
struct Color {
|
||||
};
|
||||
}
|
||||
}
|
||||
%}
|
||||
|
||||
#endif
|
||||
|
||||
%extend Outer::Inner2::Color {
|
||||
Color() { return new Outer::Inner2::Color(); }
|
||||
~Color() { delete $self; }
|
||||
static Color* create() { return new Outer::Inner2::Color(); }
|
||||
Color(const Color& other) { return new Outer::Inner2::Color(other); }
|
||||
|
||||
void colorInstanceMethod(double d) {}
|
||||
static void colorStaticMethod(double d) {}
|
||||
void colors(const Inner1::Color& col1a,
|
||||
const Outer::Inner1::Color& col1b,
|
||||
const Color &col2a,
|
||||
const Inner2::Color& col2b,
|
||||
const Outer::Inner2::Color& col2c) {}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue