2009年2月27日金曜日

swig boost_random どないせーちゅーねん

 ニュートン法というのをご存知だろうか?解を求めるのに反復しながら近づくというものだ。このニュートン法のように、今日は windows (msvc) と ubuntu (gcc) を何度も往来した。

 まず、cmake の挙動が違う。TRY_RUN が windows 上では、うまく動作するのに、ubuntu 上ではエラーを吐いて止まる。

 次に、gcc_primitive_type_name_hack 中の int の扱いではまる。まさにニュートン法で発散する状況だ。msvc では、long 扱いでないと、boost::random のコンストラクタが動作しないものが出てくる。gcc では、その逆で int 扱いでないと、boost::random のコンストラクタが動作しないものが出てくる。困った事に sizeof(int) == sizeof(long) だ。だ。だ。だ。だ。だだだだだだだだだだだだだ。

 お願いだ、primitive type に関しては、typeinfo は、ちゃんとした名前を返してくれ~

0 件のコメント: