堀江です。
早速ご返事ありがとうございます。

swigruby の%nameについて少し調べてみました。
> %module foo
> class Foo {
> public:
>   %name(aMethod_alias) void aMethod(void);
> };
> %name(aFunc_alias) void aFunc(void);
をつかって、Swig 1.3a4により
swig -ruby -c++ -o temp.cc temp.i (temp.iの内容は上記)
として、temp.ccを作成した場合、
_wrap_aFunc(VALUE self) {
...
}
という関数が定義されて、
rb_define_module_function(mFoo, "aFunc_alias", VALUEFUNC(_wrap_aFunc), 0);
として、rubyに定義されるのですが、むしろ、
_wrap_aFunc_alias(VALUE self) {
...
}
という関数を定義して、
rb_define_method(cFoo, "aMethod_alias", VALUEFUNC(_wrap_Foo_aMethod_alias), 0);
として、rubyに定義した方がいいように思います。
というのは、

void aFunc(int c);
%name(aFunc_alias) void aFunc(void);

などとしたときに、temp.ccで関数名の衝突が起こるからです。実際は、
%name()はクラスで多重定義された関数を持ち込むのに使ったりするので、
上記のような定義ができると便利だと思います。

実は、swigrubyの0.4あたりでは、このような定義になっていたと思う
のですが、それ以降に現在のように変更されているので、意図的な変更
かもしれません。(ruby.cxx (Swig中の)make_wrapper_name(xxx)が
変更されているようです。)

以上の点、考慮いただければ幸いです。


Thu, 21 Sep 2000、あなたは[ruby-ext:01285] Re: swigruby の%name() について(Thu,
21 Sep 2000)で書きました: > 福嶋です。
> 
(略)
> 具体的に、うまくいかない例があれば助かります。

-- 
**************************************
Nobuyuki Horie, Ph.D.
Lab. Genetic Engineering/Univ. of Shizuoka
mail: horie / smail.u-shizuoka-ken.ac.jp
home page: http://www.u-shizuoka-ken.ac.jp