mirror of https://github.com/swig/swig
35 lines
817 B
OpenEdge ABL
35 lines
817 B
OpenEdge ABL
%module template_virtual
|
|
|
|
// Submitted by Marcelo Matus
|
|
// assertion emitted 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 !!!!!
|