PageRenderTime 508ms CodeModel.GetById 16ms RepoModel.GetById 5ms app.codeStats 0ms

/trunk/Examples/test-suite/template_virtual.i

#
Swig | 34 lines | 25 code | 9 blank | 0 comment | 0 complexity | a0c3d7a264ffeb9ecb1de355e46a14b4 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. %module template_virtual
  2. // Submitted by Marcelo Matus
  3. // assertion emmitted with templates + derivation + pure virtual member
  4. // allocate.cxx:47: int Allocate::is_abstract_inherit(Node*, Node*):
  5. // Assertion `dn' failed.
  6. %inline %{
  7. template <class T>
  8. class A
  9. {
  10. public:
  11. virtual ~A() { }
  12. virtual void say_hi() = 0; // only fails with pure virtual methods
  13. virtual void say_hello() {} // this works fine
  14. protected:
  15. A() { } // defined protected as swig generates constructor by default
  16. };
  17. template <class T>
  18. class B : public A<T>
  19. {
  20. protected:
  21. B() { } // defined protected as swig generates constructor by default
  22. };
  23. %}
  24. %template(A_int) A<int>;
  25. %template(B_int) B<int>; // !!!! it crashes right here !!!!!