From: Zhong R. <re...@uc...> - 2007-05-16 17:27:45
|
OK. Thanks. Why should not this work? %rename(__pow__) operator->*;= Zhong ---- Original message ---- >Date: Wed, 16 May 2007 13:= 56:01 -0300 >From: gga <gg...@ad...> = >Subject: Re: [Swig-user] rename = >To: re...@uc..., swi...@li... > >Zhong Ren w= rote: >> I found several of my problems are due to that %rename and >>= %ignore do not work as I expected. My C++ code is below. Say >> I wa= nt to rename the function test to Test. These two worked: >> = >> %rename(Test) test; >> %rename(Test) test() const; > >And this sho= uld also work (and it is a tad safer, as only test within a >class wil= l match it): > >%rename(Test) *::test() const; > > >> = >> These do not work, and no error message either: >> = >> %rename(Test) vector::test; >> %rename(Test) vector<T>::test; >> %r= ename(Test) mac::vector<T>::test; >> %rename(Test) mac::vector<T>::test= (); >> %rename(Test) mac::vector<T>::test() const; > >These are proba= bly all correct. They should not work, unless they are >part of the t= emplate definition. No warnings or messages are given for >neither go= od or bad renames, currently. > >> %rename(Test) mac::vector<double>::= test; >> %rename(Test) mac::vector<double>::test() const; > >Assuming= of course you are doing %template(dvector) mac::vector<double>; >some= where, this is indeed a known bug. >It is a known bug in the current re= name matching for templates. Bug is, >basically, hashed renames are n= ot working on templates. The global >renames just happen to work main= ly due to a big hack in the source code, >which keeps the basic rename= around as the template is expanded. > >> = >> I would expect these should work: >> = >> %rename(Test) vector<T>::test; >> %rename(Test) mac::vector<T>::test= ; >> %rename(Test) mac::vector<T>::test() const; >> = >> Why not? >> = > >T is a template parameter, so it is unknown to the %rename directiv= e. >It will try to match, literally, just that, the letter T inside a = >vector, assuming T is a class type. > > >-- = >Gonzalo Garramu=F1o >gg...@ad... > >AMD4400 - ASUS48N-E= >GeForce7300GT >Kubuntu Edgy |