Boost.Iostreamsにおけるchar_traitsの扱い

id:y-hamigaki:20060324 あたりのコードを元に修正していました。
使い勝手と効率の観点から、floatをstrong typedefしたくないので、文字型をfloatにできないか試してみました。
codecvtは問題ないのですが、char_traitsが引っかかります。
文字型CharTに対してstd::char_traitsやboost::iostreams::char_traitsを参照している箇所が多くてどうにもなりません。


標準ライブラリではchar_traitsを直接参照することはなく、テンプレート引数で別の文字特性を設定できます。
しかし、Boost.Iostreamsでは文字型とchar_traitsが完全に結びついてしまっています。
文字特性は文字型だけでは特に意味がなく(ただの数値)、文字型+文字特性ではじめて意味を持ちます。
なので、文字型と文字特性は1対1の関係ではないのです。
この点がiterator_traits等とは違うところです。


真面目に直そうとすると、Boost.Iostreams大改造になりますから、今回はstrong typedefで我慢ですかねぇ。