mirror of https://github.com/swig/swig
88 lines
1.3 KiB
OpenEdge ABL
88 lines
1.3 KiB
OpenEdge ABL
%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_PHP_MULTIPLE_INHERITANCE) Hi<hello::Hello, hi::hi0>; // C#, 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; }
|
|
|
|
%}
|
|
|