MinGW で wchar_t を使うときに,特にストリーム周りでコンパイルエラーが発生する.直接の原因は std::char_traits の wchar_t に対する特殊化(場所は %(MinGW がインストールされているディレクトリ)%\include\c++\3.4.2\bits\char_traits.h)で, pos_type と state_type の内部 typedef の定義が #if で消されていることによるもの.なぜこの定義を消しているのかは不明. _GLIBCXX_USE_WCHAR_T とやらを定義すればよいのかと思ったけれど,これを定義するとさらに雑多なエラーでぎゃーす.エラーが多すぎて解析する気力が起きないので断念.んが,試しに #if を消してこの2つを定義した状態にするととりあえずストリーム周り(std::wstring のストリームへの出力とか)は問題なくコンパイルが通る.ぬーん.
とりあえず使えるからこれで納得しようかな…….しかし「よく分からないけれどとりあえず使えている」状態というのは,自分的にちょー嫌いなんだけどにゃー.