%module(ruby_minherit="1") using_namespace %warnfilter(SWIGWARN_RUBY_WRONG_NAME) hi::hi0; /* Ruby, wrong class name */ %warnfilter(SWIGWARN_RUBY_WRONG_NAME) hi::hi1; /* Ruby, wrong class name */ %warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE, SWIGWARN_CSHARP_MULTIPLE_INHERITANCE, SWIGWARN_D_MULTIPLE_INHERITANCE, SWIGWARN_PHP_MULTIPLE_INHERITANCE) Hi; // C#, D, Java, PHP multiple inheritance %inline %{ namespace hello { struct Hello { }; template struct Hi : _T1, _T2 { int value1() const { return 1; } int value2() const { return 2; } }; } namespace hi { struct hi0 { }; } %} namespace hello { %template(Hi_hi0) Hi; } %inline %{ namespace hi { struct hi1 : private hello::Hi< hello::Hello, hi0 > { using hello::Hi< hello::Hello, hi::hi0 >::value1; using hello::Hi< hello::Hello, hi0 >::value2; }; } %} %inline { namespace foo { typedef double mytype; } // global namespace typedef float mytype; using namespace foo; struct X { ::mytype d; }; } %inline %{ namespace SpaceMan { typedef double SpaceManDouble; } using namespace ::SpaceMan; // global namespace prefix SpaceManDouble useSpaceMan(SpaceManDouble s) { return s; } %}