diff options
Diffstat (limited to 'Examples/test-suite/template_virtual.i')
| -rw-r--r-- | Examples/test-suite/template_virtual.i | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Examples/test-suite/template_virtual.i b/Examples/test-suite/template_virtual.i new file mode 100644 index 0000000..8c844f9 --- /dev/null +++ b/Examples/test-suite/template_virtual.i @@ -0,0 +1,34 @@ +%module template_virtual + +// Submitted by Marcelo Matus +// assertion emmitted with templates + derivation + pure virtual member +// allocate.cxx:47: int Allocate::is_abstract_inherit(Node*, Node*): +// Assertion `dn' failed. + +%inline %{ + + template <class T> + class A + { + public: + virtual ~A() { } + + virtual void say_hi() = 0; // only fails with pure virtual methods + + virtual void say_hello() {} // this works fine + + protected: + A() { } // defined protected as swig generates constructor by default + }; + + template <class T> + class B : public A<T> + { + protected: + B() { } // defined protected as swig generates constructor by default + }; + +%} + +%template(A_int) A<int>; +%template(B_int) B<int>; // !!!! it crashes right here !!!!! |
