まつもと ゆきひろです

In message "[ruby-ext:00821] Re: C++ の拡張ライブラリ"
    on 00/01/05, Kazuhiro HIWADA <hiwada / kuee.kyoto-u.ac.jp> writes:

|1. FILE* の typemap がほしい…
|
|  Ruby の OpenFile?とどう対応づけるのがいいのかがちょっと…。typedef で
|  FILE* を FILE_READ* とか FILE_WRITE* とかにしちゃえばいいのかとか思っ
|  てますが、どうするのが良いのやら…。swigruby 標準があるとうれしい?。

引数として IO をとるだけで良いのであれば、以下のようなのでい
くんじゃないですかね。逆は結構つらそう。

%{
#include "rubyio.h"
%}

%typemap(ruby,in) FILE * {
    OpenFile *fptr;

    Check_Type($source, T_FILE);    
    GetOpenFile($source, fptr);
    rb_io_check_writable(fptr);
    $target = GetWriteFile(fptr);
}

|4. vector<T> とかのサンプルが欲しい
|
|  each さえ定義してしまえばあとは Enumerable を include するだけでかな
|  り使えそうだとは思うんですが…。サンプルがもしあったらうれしい…。体
|  系的 STL を swigruby できたりすると凄くうれしいかも……

モジュールをincludeするpragmaとかあるといいですね。
今はできませんよね。

|#「Ruby は拡張ライブラリが他より作りやすくて良い」とか思ってたんです
|が甘かったかな。Conservative な GC の利点とかは SWIG を前提にしても残
|るんでしょうか…。うーむ、なんかいろいろ考えを改めないとだめなのかも。

生成したコードを見ると言うことがあれば違うんでしょうけどね。