mirror of https://github.com/swig/swig
50 lines
1.2 KiB
OpenEdge ABL
50 lines
1.2 KiB
OpenEdge ABL
%module(directors="1") director_wombat
|
|
#pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR
|
|
|
|
%feature(director) Bar;
|
|
%feature(director) Foo<int>;
|
|
|
|
%inline %{
|
|
template<typename T> class Foo
|
|
{
|
|
public:
|
|
Foo()
|
|
{ /* NOP */ }
|
|
virtual ~Foo()
|
|
{ /* NOP */ }
|
|
virtual int meth(T param)
|
|
{ return param; }
|
|
};
|
|
|
|
typedef Foo<int> Foo_int;
|
|
|
|
class Bar
|
|
{
|
|
public:
|
|
virtual ~Bar();
|
|
virtual Foo_int *meth();
|
|
virtual void foo_meth_ref(Foo_int &, int);
|
|
virtual void foo_meth_ptr(Foo_int *, int);
|
|
virtual void foo_meth_val(Foo_int, int);
|
|
virtual void foo_meth_cref(const Foo_int &, int);
|
|
virtual void foo_meth_cptr(const Foo_int *, int);
|
|
};
|
|
|
|
Bar::~Bar()
|
|
{ /* NOP */ }
|
|
|
|
Foo_int *
|
|
Bar::meth()
|
|
{
|
|
return new Foo_int();
|
|
}
|
|
|
|
void Bar::foo_meth_ref(Foo_int &arg, int param) { }
|
|
void Bar::foo_meth_ptr(Foo_int *arg, int param) { }
|
|
void Bar::foo_meth_val(Foo_int arg, int param) { }
|
|
void Bar::foo_meth_cref(const Foo_int &arg, int param) { }
|
|
void Bar::foo_meth_cptr(const Foo_int *arg, int param) { }
|
|
%}
|
|
|
|
%template(Foo_integers) Foo<int>;
|