/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/smart_pointer_extend.i
132 строки
2 KB
Julien Schueller
Fix -Wextra-semi warnings (#3372)
18 мар 2026, 21:53
Не верифицирован
18 мар 2026, 21:53
84ff343
Код
Авторство
О чём код?
%module smart_pointer_extend %warnfilter(SWIGWARN_RUBY_WRONG_NAME) hi::CBase::z; /* Ruby, wrong const name */ %inline %{ namespace hi { struct CBase { static int hello() { return 1; } int x; static const int z = 1; }; class CDerived : public CBase { }; class CPtr { public: CDerived* operator->(void) {return 0;} }; int get_hello(CPtr ptr) { return ptr->hello(); } class CPtrConst { public: const CDerived* operator->() const {return 0;} }; } %} %extend hi::CBase { int foo(void) {return 1;} int bar(void) {return 2;} int boo(int i) {return i;} } %extend hi::CDerived { int foo(void) {return 1;}; } %extend Foo { int extension(int i, int j) { return i; } int extension(int i) { return i; } int extension() { return 1; } } %inline %{ struct Foo { }; class Bar { Foo *f; public: Bar(Foo *f) : f(f) { } Foo *operator->() { return f; } }; %} %extend CFoo { public: static void StatFun() {} static void StatFun(int i) {} static void HoHoHo(int i, int j) {} } %inline %{ class CFoo { }; class CPtrFoo { public: CFoo* operator->(void) {return 0;} }; %} %inline %{ namespace foo { class DFoo; class DPtrFoo { DFoo *p; public: DPtrFoo(DFoo *ptr) : p(ptr) { } DFoo* operator->(void) {return p;} }; class DFoo { public: void F(void) {} }; } %} %extend foo::DFoo { static int SExt(int i = 1) {return i;} int Ext(int i = 2) {return i;} }