2004-10-29から1日間の記事一覧

Boost.Regex + Locale

う? というか,localeにcharからwchar_tへのコード変換ファセットかwchar_tでcollationとる文字照合ファセット突っ込めば,わざわざwchar_tに変換せずにcharのままでマルチバイト文字の正規表現が取れる? る? るる? るるる? るるるるる?

Boost.Regex + Locale

href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/boost/boost/libs/regex/Attic/traits_class_ref.htm?rev=1.11 うふ. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1429.htm#traits_discussion うふふ. うふふふふ. うふふふふふ…

ロケール,ロケール,ロケール!

Collation周りも超面白そうな予感.見てる限りいろんなこと出来そう. std::vector<std::wstring> str_vec; ..... // ワイド文字列をShift_JIS文字列としてソートする std::sort(str_vec.begin(), str_vec.end(), ucs_as_sjis_loc);こんなんとか出来そうに読める.うふ,う</std::wstring>…

自分でstd::codecvtを拡張する

上で用いているutf8_codecvt_facet_wchar_tはstd::codecvtの一実装に過ぎません.ユーザはstd::codecvtからクラスを派生させて独自のコード変換ファセットを定義することが可能です.もちろん,そうして作成したファセットを上とまったく同様にストリームに…

UTF-8Nを吐くワイドストリーム

1昨日ブログで書いたことをコードで示すとこんな感じになります. #include <fstream> #include <locale> // Boost 1.32.0からBOOST_ROOT/boost/utf8_codecvt_facet.hppと // BOOST_ROOT/libs/serialization/src/utf8_codecvt_facet.cppを // 掘り出してきてカレントにコピー</locale></fstream>…