%module(ruby_minherit="1") using_composition %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_D_MULTIPLE_INHERITANCE, SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar; // C#, D, Java, PHP multiple inheritance %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_D_MULTIPLE_INHERITANCE, SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar2; // C#, D, Java, PHP multiple inheritance %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_D_MULTIPLE_INHERITANCE, SWIGWARN_PHP_MULTIPLE_INHERITANCE) FooBar3; // C#, D, Java, PHP multiple inheritance #ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) blah; #endif %inline %{ class Foo { public: int blah(int x) { return x; } char *blah(char *x) { return x; } }; class Bar { public: double blah(double x) { return x; } }; class FooBar : public Foo, public Bar { public: using Foo::blah; using Bar::blah; char *blah(char *x) { return x; } }; class FooBar2 : public Foo, public Bar { public: char *blah(char *x) { return x; } using Foo::blah; using Bar::blah; }; class FooBar3 : public Foo, public Bar { public: using Foo::blah; char *blah(char *x) { return x; } using Bar::blah; }; %}