%rename ディレクティブを使用して関数の名前を変更するように、コンストラクターの名前を変更できますか?
%rename(create_cell) Cell(string);
create_cell
基本的に、代わりに のようなものになりたいですnew_Cell
。
その時点ではできないと思いますが (動作するかどうか試してみましたか?)、できることがいくつかあります。(もちろん、そのうちの1つだけを実行してください。)
"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