/trunk/Examples/test-suite/using_namespace.i
# · Swig · 88 lines · 65 code · 23 blank · 0 comment · 0 complexity · b0e40040a5ef60b58a8cdca43153beeb MD5 · raw file
- %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; }
- %}