PageRenderTime 45ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

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

#
Swig | 52 lines | 45 code | 7 blank | 0 comment | 0 complexity | 59aeac61756f2105305091aff6f7c7f0 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. %module(ruby_minherit="1") using_composition
  2. %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
  3. SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
  4. SWIGWARN_D_MULTIPLE_INHERITANCE,
  5. SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, D, Java, PHP multiple inheritance
  6. %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
  7. SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
  8. SWIGWARN_D_MULTIPLE_INHERITANCE,
  9. SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar2; // C#, D, Java, PHP multiple inheritance
  10. %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
  11. SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
  12. SWIGWARN_D_MULTIPLE_INHERITANCE,
  13. SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar3; // C#, D, Java, PHP multiple inheritance
  14. #ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings
  15. %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah;
  16. #endif
  17. %inline %{
  18. class Foo {
  19. public:
  20. int blah(int x) { return x; }
  21. char *blah(char *x) { return x; }
  22. };
  23. class Bar {
  24. public:
  25. double blah(double x) { return x; }
  26. };
  27. class FooBar : public Foo, public Bar {
  28. public:
  29. using Foo::blah;
  30. using Bar::blah;
  31. char *blah(char *x) { return x; }
  32. };
  33. class FooBar2 : public Foo, public Bar {
  34. public:
  35. char *blah(char *x) { return x; }
  36. using Foo::blah;
  37. using Bar::blah;
  38. };
  39. class FooBar3 : public Foo, public Bar {
  40. public:
  41. using Foo::blah;
  42. char *blah(char *x) { return x; }
  43. using Bar::blah;
  44. };
  45. %}