開発環境 | Visual C++ 2008 |
Visual Studio 2008を買ってからほぼ毎日ちょっとずつ触っていますが、GUIが今まで使っていたVisual Studio.NET 2003とあんまり変わらないので慣れるのは早そうです。
まだboostが公式に2008に対応していないあたりがちょっと辛いですが。
C++では、昔は半角文字は1バイト、全角文字は2バイトと可変長になっており、文字列処理が大変面倒でした。
JavaやC#では、半角文字も全角文字も1文字2バイト固定になっていて、大変羨ましく感じたものでした。
そこで、C++でも文字を扱うときはwchar_t
を使い、1文字を固定長にしようとしてみたことがあります。
文字列はstd::wstring
を使えば問題なかったのですが、標準ライブラリを使ったファイルI/Oに問題がありました。
Visual Studio.NET 2003のstd::fstream
のopen
メンバは、
open(const char *_Filename, (略)
しかありませんでした。wchar_t
ベースのファイル名をstd::fstream
に渡すことができなかったのです。
そこで仕方がなく、WideCharToMultiByte
を使ってchar
ベースの文字列に変換したり、別のライブラリを使ったりしていますた。
これが、Visual Studio 2008では解決されています(Visual Studio 2005の時点で既に解決されていたみたいです)。
std::fstream
に
open(const wchar_t *_Filename, (略)
というメンバが追加されました。これでファイル名をwchar_tベースで管理できます。ありがたいことです。
ようやくUnicodeアプリケーションのファイルI/Oに標準ライブラリを使えるようになりました。