新しいunicodeの文字C++0x
質問
私は建物のAPIい取得した文字列の各エンコーディングを含め、utf8,utf16,utf32とwchar_tる場合もあutf32はutf16によるプしていきます。
新C++の標準を導入した新しいタイプ
char16_t
やchar32_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");
その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_t
や char32_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
種類とキーワードが必要に がtypedefsuint_least16_t
やuint_least32_t
ています。主な問題は、新しいタイプ 解決する過負荷.について できる機能過負荷 取_Char16_t
や_Char32_t
引数には、専門分野 などstd::basic_string<_Char16_t>
別std::basic_string <wchar_t>
.
2) u16string
や u32string
実際のC++0xだけではなくGCC'ismsとされ 各種標準草案文.含まれることとなるの <string>
ヘッダを表します。見積もりから同じ記事:
の標準ライブラリも提供
_Char16_t
や_Char32_t
typedefs、類似のtypedefswstring
,wcout
, 等 以下の標準クラス:
filebuf, streambuf, streampos, streamoff, ios, istream, ostream, fstream, ifstream, ofstream, stringstream, istringstream, ostringstream,
string