0

私のプログラムには多くの ANSI<=>UNICODE 会話が必要なので、追加機能や多くの新規作成/削除よりも簡単にすべてのものを変換するマルチタイプ オブジェクトを作成するというアイデアを得ました。擬似コード:

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;
}

それは本当にコーディングする価値がありますか、それとも別の解決策を考えるべきですか? たぶん、すでに完了したプロジェクトがありますか?それとも、私が間違っていて、この考えは悪いのでしょうか? ありがとう

4

1 に答える 1

1

これはcodecvtによく似ています。これにより、Char*ストリームとマルチバイトwchar_t*ストリームの間で変換できます。これは標準ライブラリの一部です。StroustrupによるC++プログラミング言語の第3版には、これに関するすばらしい付録があります。

于 2012-04-16T13:57:50.137 に答える