BREW String(3)

考えてみれば、basic_stringはマルチバイト対応なのですが、2byte(AECHAR)のbasic_stringであるwstring以外は必要ないです。
ということで、basic_stringを展開した後のクラスを用意してやります。

class basic_string_AECHAR{
public:
    typedef AECHAR	       _E;
    typedef char_traits_AECHAR   _Ty;
    typedef allocator_AECHAR     _A;
    
    typedef basic_string_AECHAR  _Myt;

char_traitsもchar_traits_AECHARにして、allocatorもallocator_AECHARにして、iterator系のテンプレートも全部AECHARで展開してやります。
幸い(?)、basic_stringの中で使用している型は全てtypedefされているので、typedefを変えてやるだけでOK。
で、allocatorですが、どうせAECHAR用のアロケータしか使わないのであれば必要ありません。
なので、アロケータを使用している部分は全部削除。
operator newとoperator deleteに書き換えます。


んで、あとはcppファイルにメソッドを移動させれば今度こそ完成!


( ´ー`)フゥー……長かった……まあ、これであとはStringクラスの内部にwstringを持って、適当に委譲してやるだけで大体のメソッドは移植出来ます。


一回実戦で使ってみて、大丈夫だったらソースとか公開したいけど……公開して大丈夫なのかなぁ(;´Д`)
てかこんなクラスどこの会社も自作してますかそうですか(´・ェ・`) ショボン