| %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; | |
| %} |