/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/errors/cpp_extend_redefine_template.i
54 строки
1 KB
William S Fulton
Warning 302 rewording update for %extend
28 июл 2023, 09:51
28 июл 2023, 09:51
705d5b8
Код
Авторство
О чём код?
%module xxx %extend FooT<int> { FooT(int a) { return new FooT<T>(); } ~FooT() { delete $self;} int spam(const char *) { return x; } int spam(int x) { return x; } int spam(int x, int y) { return x + y ; } int spam(int x, int y,int z) { return x + y ; } int spam(Foo f, double d = 10.0) { return 0; } }; %inline %{ template<class T> class FooT { public: FooT(){} #ifdef SWIG %extend { FooT(int a, int b) { return new FooT<T>(); } } #endif int spam() { return 1; } int spam(const char* c) { return 2; } }; %} %template(FooTi) FooT<int>; // After the class %inline %{ template<class T> class BarT { public: BarT() { } int spam() { return 1; } int spam(const char* c) { return 2; } }; %} %extend BarT<int> { BarT(int a) { return new BarT<T>(); } ~BarT() { delete $self;} int spam(const char *) { return 1} int spam(int x) { return x; } int spam(int x, int y) { return x + y ; } int spam(int x, int y,int z) { return x + y ; } int spam(Bar b, double d = 10.0) { return 0; } }; %template(BarTi) BarT<int>;