2012-04-16 5 views
0

私のプログラムではたくさんのANSI < => UNICODEの会話が必要なので、すべてのものをaddinational関数や新しい/削除よりも簡単に変換するmultitypeオブジェクトを作成することを考えました。擬似コード:C++ Multitypeオブジェクトのアイディア

class CWchar // char based 
{ 
public: 
    public static implicit operator wchar_t*(CWchar cw) 
    { 
     // converting cw.data to wchar_t 
     // up to U+FFFF conversion needed 
    } 
    public static implicit operator char*(CWchar cw) 
    { 
     return cw.data; 
    } 
    CWchar& CWchar::operator=(const char* c) 
    { 
     data = *c; 
     return *this; 
    } 
    CWchar& CWchar::operator=(const wchar_t* c) 
    { 
     //conversion to char* ... 
     return *this; 
    } 

    // add some smart pointers, garbage collector, and leave delete 

private: 
    char* data; 
} 

これは本当にコーディングする価値があるのですか、別の解決策について考えるべきですか?既にプロジェクトが完成しているのでしょうか?あるいは、私は間違っていて、この考えは悪いですか?おかげで

+3

なぜ変換が必要なのですか? Unicode側と非Unicode側をインタフェースするブリッジを1つだけ持つことは可能ですか? –

+0

私のアプリケーションはミニIMですが、マルチバイトのchar *を受け取り、それをワイドwchar_t *に変換する必要があります。たとえばギリシャのアルファベットは良いフォーマットになります。 – user1112008

+0

@MikeKwan私は通知を追加するのを忘れましたか、あなたは橋のアイデアについてもっと何かを言うことができましたか? – user1112008

答えて

1

これは多くのように聞こえるcodecvt。これにより、Char *とmultibyte wchar_t *ストリームの間の変換が可能になります。これは標準ライブラリの一部です。 StroustrupによるThe C++ Programming Languageの第3版にはこれに関する素晴らしい付録があります。

関連する問題