| %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<hello::Hello, hi::hi0>; // C#, D, Java, PHP multiple inheritance | |
| %inline %{ | |
| namespace hello | |
| { | |
| struct Hello | |
| { | |
| }; | |
| template <class _T1, class _T2> | |
| struct Hi : _T1, _T2 | |
| { | |
| int value1() const | |
| { | |
| return 1; | |
| } | |
| int value2() const | |
| { | |
| return 2; | |
| } | |
| }; | |
| } | |
| namespace hi | |
| { | |
| struct hi0 | |
| { | |
| }; | |
| } | |
| %} | |
| namespace hello | |
| { | |
| %template(Hi_hi0) Hi<hello::Hello, hi::hi0>; | |
| } | |
| %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; } | |
| %} | |