コンパイル時リスト処理続き
g++で通らなかったのは型指定してなかったからのようです。
template <typename T> struct generate_multiply_table { typedef typename map_list< bind_1st<multiply,T>::template currying_type, iota<5,0>::type>::type type; }
このように書き換えたところちゃんとg++でもコンパイルとおりました。
ただやっぱり256*256の計算とかは無謀だったようで1時間ほどコンパイラぶん回しましたけど終わる気配すらありませんでした・・・
というか予約仮想メモリアドレスが1.4Gとかいっててこのままだとアドレス空間使い果たして終わるかなー?とかって感じでした。その後一度少し落ちてたようなのでうまくいくのかもしれませんけど・・・
高々65536とおりのテーブル作るのに数時間とかかけるくらいならランタイムの最初に数百命令実行させたほうがいいよね・・・