diff options
Diffstat (limited to 'Examples/test-suite/template_virtual.i')
-rw-r--r-- | Examples/test-suite/template_virtual.i | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Examples/test-suite/template_virtual.i b/Examples/test-suite/template_virtual.i new file mode 100644 index 000000000..cc5949a4f --- /dev/null +++ b/Examples/test-suite/template_virtual.i @@ -0,0 +1,32 @@ +%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 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 !!!!! |