sabor****@olive*****
sabor****@olive*****
2003年 9月 12日 (金) 23:19:01 JST
平中です。 ご報告頂きありがとうございます。 > regex_t reg; > を使うなら > regfree(®) ; > をしなきゃいけないようです。 お恥ずかしい限りです。 了解です。 > なので、regfree(®)を呼んだら > > \HeaderInfo.cpp(185) : error C2660: 'regfree' : 関数が不正な 1 個の実引数を > ともなって呼び出されました。 > > と怒られました。 > _regex.hをみると > extern void regfree _RE_ARGS ((regex_t *preg)); > > #if __STDC__ > #define _RE_ARGS(args) args > #else /* not __STDC__ */ > #define _RE_ARGS(args) () > #endif /* not __STDC__ */ > > で、よくわからないので、(^^; > regfreeの_RE_ARGSとカッコを外したらコンパイルOK。 > (ツッコミよろしくです) 私もよくわからないんですが、下記のコメントから_REG_ARGS外しても 問題ないように思います。という訳で、外してしまいましょう。 以下_REG_ARGS定義直前のコメント /* Declarations for routines. */ /* To avoid duplicating every routine declaration -- once with a prototype (if we are ANSI), and once without (if we aren't) -- we use the following macro to declare argument types. This unfortunately clutters up the declarations a bit, but I think it's worth it. */ > > 以下は regfree(®) ; を追加した関数になります。 --途中省略-- > 色々やったので、絶対正しく必要な処理かどうか微妙に迷うところですが、 > まあこんな感じということで。^^; > 本当はregcompの返り値も見たほうがよさそうですね・・・ > > とりあえず、見つけたところだけ報告しました。 > 以上です。 早速ご教授頂いた内容でソースを修正することにします。