VC ++のドキュメントに次のように書かれているのは非常に奇妙です:(http://msdn.microsoft.com/en-us/library/tzf8k3z8 (VS.90).aspx )
"タイプbasic_filebufのオブジェクトは、タイプパラメータElemで指定されたchar_typeに関係なく、タイプchar *の内部バッファで作成されます。これは、Unicode文字列(wchar_t文字を含む)が以前にANSI文字列(char文字を含む)に変換されることを意味します。内部バッファに書き込まれます。Unicode文字列をバッファに格納するには、タイプwchar_tの新しいバッファを作成し、basic_streambuf :: pubsetbuf()メソッドを使用して設定します。この動作を示す例を確認するには、以下を参照してください。」
なんで?