こんにちは、なかむら(う)です。

In message "[ruby-dev:13898] Re: Prototype for rb_gc_mark / volatile in ruby.h"
    on 2001/07/16, WATANABE Hirofumi <eban / os.rim.or.jp> wrote:
| :-Zaをつけるとwindows.h(からインクルードされるヘッダ)でエラー
| :が出るのですよ、これが。
| 
| うーむ。それは__STDC__が定義されるとエラーになるのですか?
| win32/win32.hの中で__STDC__をdefineして済むなら簡単なんです
| けどねえ。

-Zaはコンパイルエラーになります。
struct/unionの無名メンバを許さなくなるようです。
他にもなんかあるかも。

__STDC__を自前で定義してやると、今度は標準ヘッダの中身が変わ
るのでけっこうはまります。
ANSI Cにない関数/typdefされた型などが全部アンダーバーなしで
は使えなくなるようです(これはこれで理解できないこともない)。

現状のrubyのソースを考えると、__STDC__を自前で定義するよりも
__STDC__でコードを変えてる部分を個別にいじった方が作業量は
だいぶ少なそうです。
それもなんかやですが、致命的なのはruby.hとregex.cにあるvolatile
絡みくらい(あとはプロトタイプ宣言の有無程度)なので、そこだけ
対応で十分かもしれません。

それでは。

--
U.Nakamura <usa / osb.att.ne.jp>
# なんかMicrosoftに嫌がらせされてるような気も ^^;