質問

私は建物のAPIい取得した文字列の各エンコーディングを含め、utf8,utf16,utf32とwchar_tる場合もあutf32はutf16によるプしていきます。

  1. 新C++の標準を導入した新しいタイプ char16_tchar32_t ていないこsizeof曖昧されますと、失活する恐れがあり、将来のような支援がどのように、 問われていることは、そうした干渉 通常の uint16_t, uint32_t, wchar_t できないプロダクト種別が過負荷になるようなものを参照して同じ。

    class some_class {
    public:
        void set(std::string); // utf8 string
        void set(std::wstring); // wchar string utf16 or utf32 according
                                 // to sizeof(wchar_t)
        void set(std::basic_string<uint16_t>)
                             // wchar independent utf16 string
        void set(std::basic_string<uint32_t>);
                             // wchar independent utf32 string
    
    #ifdef HAVE_NEW_UNICODE_CHARRECTERS
        void set(std::basic_string<char16_t>)
                             // new standard utf16 string
        void set(std::basic_string<char32_t>);
                             // new standard utf32 string
    #endif
    };
    

    いす:

    foo.set(U"Some utf32 String");
    foo.set(u"Some utf16 string");
    
  2. そのtypedefの std::basic_string<char16_t>std::basic_string<char32_t> が本日より

    typedef basic_string<wchar_t> wstring.
    

    いず参考値です。

    編集:によるヘッダのgcc-4.4、導入したこれらの新しいタイプ:

    typedef basic_string<char16_t> u16string;
    typedef basic_string<char32_t> u32string;
    

    ていただきたいと思い、信頼性の向上に努めていますが実際の基準となgcc-ism.

役に立ちましたか?

解決

1) char16_tchar32_t する異なる新しいタイプで、過積載を可能とします。

見積もりから ISO/IEC JTC1SC22WG21N2018:

定義 char16_t すtypedefに 異なる新しいタイプの名前 _Char16_t と同じサイズで表現してい uint_least16_t.同様に、定義 char32_t き typedefに異なる新しいタイプ、 の名称 _Char32_t と同じ サイズや表現として uint_least32_t.

それ以上の説明からdevx.com 第"お客様ご自身でご準備のため、Unicode革命"):

あぜに _Char16_t_Char32_t 種類とキーワードが必要に がtypedefs uint_least16_tuint_least32_t ています。主な問題は、新しいタイプ 解決する過負荷.について できる機能過負荷 取 _Char16_t_Char32_t 引数には、専門分野 など std::basic_string<_Char16_t>std::basic_string <wchar_t>.

2) u16stringu32string 実際のC++0xだけではなくGCC'ismsとされ 各種標準草案文.含まれることとなるの <string> ヘッダを表します。見積もりから同じ記事:

の標準ライブラリも提供 _Char16_t_Char32_t typedefs、類似のtypedefs wstring, wcout, 等 以下の標準クラス:

filebuf, streambuf, streampos, streamoff, ios, istream, ostream, fstream, ifstream, ofstream, stringstream, istringstream, ostringstream, string

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top