連休でした。晴れた。
土曜日はうだうだしてた。
日曜日は買い物に行って結局買ってきたのがエロマンガだけとか。
月曜日は横浜DASH-01で玉砕とか。
いや今日がかなり凹みましたよ。
横浜DASH、駅から会場まで結構遠くて、着いたらすげー並んでんの。11時会場で入れたのは10〜15分くらいだったと思う。で、まっさきに狙ってたディーラーさんとこ行ったら完売。あー、まあね。
まあそれだけならそんなに凹まないんだが、実物見たら想像以上の出来で、しかも再販の見込みは薄そうだと。
まああれだ。積みガレキの山を早く消化しろというお告げだな。
あ、CRTの修理が見積り来て、ブラウン管じゃなくて基板上の部品らしくて500円とのこと。でも実際は送料技術料込みで15750円ですって…。
まあ仕方無いけどなぁ。新しいの買うより安くて良かったよ。水曜日には受け取れそうだ。
しまったぁーーーーーーーー!!
VC++でコンパイルしたらエラーの山。そりゃあもう数百行ものすごいエラー。
何かと思ったらテンプレート引数のオーバーロードを処理できてないみたい。
うーん、g++ではコンパイルできてたから普通にやってたんだが、g++の拡張なんだろうか。確かに初めて見た時、こんなこと出来るのかー、と思ったんだけど。
具体的には
template<RBObject (*FUNC)(RBObject)> void DefModuleFunc(const char* name); template<RBObject (*FUNC)(RBObject, RBObject)> void DefModuleFunc(const char* name);
こんな感じのテンプレート関数があるわけですよ。
テンプレート引数、FUNCの引数の数によってオーバーロードされるというかなり変態コード。
FUNCは故あって普通の引数じゃなくてテンプレートで渡したい。で、引数の数によって関数名変えるのもダサいからそこは勝手に判別してもらいたい、と思った結果これですよ。
でg++、少なくとも3.4以上なら通るんだけどVC++だと曖昧だからどのテンプレート関数使っていいのかわかんねーよ!というエラーだね。
全然曖昧じゃないと思うんだけどね。
その前にRBObject (*func)(RBObject)をRBObject (*func)(RBObject,RBObject)にキャストできねーよ、とかわけのわからんことを言ってるんだよな。オーバーロードしてるつもりなんだからキャストできないのは当たり前なんだし、キャストできたら困るんだが。
つーことはバグ? かなぁ。だとしてもどうしようもねぇよ。
引数の数によって名前を変えればコンパイルできそうだけど、やるしかないか。
本当は今日中にリリースできすると思ってたんだけど無理でした。今週中にはなんとかしたい。