From: Nitro <ni...@dr...> - 2006-09-01 09:20:36
|
Am 01.09.2006, 02:57 Uhr, schrieb mark gossage <" <ma...@go...>>: > Yes I did it differently. > When I split the declaration and the %extend, there seems to be problems > with SWIG spotting it. > > // given the template: > template<int N> > struct Vector > { > double p[N]; > }; > %template(Point5) Vector<5>; > > I tried the following: > > %extend Vector{...} doesnt add the extra methods, no warning > given > > %extend Vector<N>{...} doesnt add the extra methods, no warning > given > > %extend Vector<5>{...} works ok > > %extend Point5{...} generates warning during SWIG'ing, > "%extend for undeclared class Pont5" > > This doesn't look like a good behaviour Hey Mark, I tried this today and it works for me: %module vec template<int N> struct Vector { double p[N]; }; %extend Vector { void test() {} } %template(Point5) Vector<5>; I guess the important thing is to move the %extend before the %template. If I try it the other way round it doesn't work. I think in this case the behaviour is ok. -Matthias |