1
我们是否可以重命名构造函数,如使用%rename指令重命名函数?SWIG TCL:将类构造函数名称从new_ *重命名为create_ *
%rename(create_cell) Cell(string);
基本上,我想要的东西,如create_cell
而不是new_Cell
结束了。
我们是否可以重命名构造函数,如使用%rename指令重命名函数?SWIG TCL:将类构造函数名称从new_ *重命名为create_ *
%rename(create_cell) Cell(string);
基本上,我想要的东西,如create_cell
而不是new_Cell
结束了。
我怀疑你不能在那个时候(你是否尝试过看它是否有效?),但是你可以做一些事情。 (仅做他们中的一个,当然。)
"new_Cell"
是"create_cell"
。我认为你应该能够在参数中找到改变位置的地方,例如Tcl_CreateCommand或Tcl_CreateObjCommand
,但也可能在宏中,这取决于代码生成的完成方式。 (我从来没有真正看过。)使用load
将代码获取到Tcl中,然后rename
之后的命令。名字并不固定。 load
可能在执行package require
的调用中;只是做你通常会做的就是代码错误的名称的工作,然后再做到这一点:
rename new_Cell create_cell
添加一个包装命令或程序;他们都会让你做的事:
proc create_cell args {
eval new_Cell $args
}
# With 8.5 or later
proc create_cell args {
new_Cell {*}$args
}
# With 8.6
proc create_cell args {
tailcall new_Cell {*}$args
}
# Or do this; not a procedure, an alias
interp alias {} create_cell {} new_Cell
如果您使用的包装或别名,你也可以使用'rename'对包装'new_Cell'移动到另一个Tcl命名空间,它不会干扰你所看到的东西。纯粹的化妆品,但方便。 (我自己,我会包装一切,因为我不太喜欢SWIG生成的界面风格; Tcl _isn't_ C++和它的API有它自己的味道。) – 2012-04-04 07:07:32
谢谢Donal,我想我会重命名proc是TCL 。这似乎是最简单的事情。 – 2012-04-04 15:39:34