読者です 読者をやめる 読者になる 読者になる

小ネタ:VCL文字列のUnicode化+α

とりあえず、VCLにおけるC++クラスの不備は解消された。∩( ・ω・)∩ ばんじゃーい

で、DEKOさんのところで言及されているVCL文字列のUnicode化だけど、考えてみたら、C++Builderの場合、std::stringとの兼ね合いがでてくるんだよな・・・。
例えば、AnsiString/UnicodeStringをboost::regexやboost::tokenizerに突っ込む場合は、一旦、std::string(std::wstring)に変換しなければならないから、オーバーヘッドや文字化けが起こる可能性がある。
そのうえ、UnicodeString(仮)は、UTF-16で処理するとのことだから、std::wstringに素直に突っ込んだとしても、std::wstring::length()が文字数とならないから、boost::regexがちゃんとマッチできるかその辺も難しい。
まぁ、現状でも、boost::regexSJISEUC-JPを突っ込んでも同じ問題が発生したような気がするし、UTF-8だってそんな気が。(未確認)
# 数年前にboost::regexに「表」(0x955c)と半角の「¥」(0x5c)が混在した文字列を突っ込んで、実験した記憶はあり。

正直、そっち系は全然判らないから、おいらが地獄を見る可能性は大ありだwwwww
個人的には、Unicodeの「世界中の文字を一つのコードにまとめる」こと自体、大技中の大技な気がするんだけど、現実問題としては、Unicodeがベストではないけどベターなんだよね。