mirror of https://github.com/swig/swig
57 lines
803 B
OpenEdge ABL
57 lines
803 B
OpenEdge ABL
%module smart_pointer_member
|
|
|
|
%warnfilter(SWIGWARN_GO_NAME_CONFLICT); /* Ignoring 'foo' due to Go name ('Foo') conflict with 'Foo' */
|
|
|
|
%inline %{
|
|
|
|
class Foo {
|
|
public:
|
|
int x[4];
|
|
int y;
|
|
static const int z;
|
|
static const int ZZ = 3;
|
|
static int zx;
|
|
|
|
static int boo() { return 0;}
|
|
|
|
friend int foo(Foo* foo) { return 0;}
|
|
};
|
|
|
|
class Bar {
|
|
Foo *f;
|
|
public:
|
|
Bar(Foo *f) : f(f) { }
|
|
Foo *operator->() {
|
|
return f;
|
|
}
|
|
|
|
static int bua() { return 0;}
|
|
};
|
|
|
|
class CBar {
|
|
Foo *f;
|
|
public:
|
|
CBar(Foo *f) : f(f) { }
|
|
const Foo *operator->() {
|
|
return f;
|
|
}
|
|
};
|
|
|
|
|
|
int get_y(Bar *b)
|
|
{
|
|
return (*b)->y;
|
|
}
|
|
|
|
int get_z(Bar *b)
|
|
{
|
|
return (*b)->z;
|
|
}
|
|
%}
|
|
|
|
|
|
%{
|
|
const int Foo::z = 3;
|
|
int Foo::zx;
|
|
%}
|