Unicode 文字型とリテラル(C++11)
C++Builder 2009 には Unicode の新しい文字型と文字リテラルが実装されています。これらの型は C++Builder 2009 に追加された C++0x 機能の 1 つです。
目次
文字型 char16_t
と char32_t
2 つの新しい型は Unicode 文字を表現します。
- char16_t は 16 ビットの文字型で、char16_t は C++ キーワードです。この型は UTF-16 文字に対して使用できます。
- char32_t は 32 ビットの文字型で、char32_t は C++ キーワードです。この型は UTF-32 文字に対して使用できます。
既存の wchar_t 型はワイド文字セットの実行で使用するワイド文字の型です。wchar_t ワイド文字リテラルは大文字 L で開始します(L'c'
など)。
文字リテラル u'character'
と U'character'
新しい型の文字リテラルを作成するために 2 種類の新しい形式があります。
u'character'
は単一の char16_t 文字用のリテラルです(u'g'
など)。u'kh'
などの複数文字リテラルは不正な形式です。char16_t リテラルの値は ISO 10646 コード ポイント値と同じです。ただしコード ポイントは 16 ビット値として表現できます。BMP(基本多言語面)にある文字のみが表現できます。U'character'
は単一の char32_t 文字用のリテラルです(U't'
など)。U'de'
などの複数文字リテラルは不正な形式です。char32_t リテラルの値は ISO 10646 コード ポイント値と同じです。
以前はマルチバイト文字のリテラルは wchar_t 型の 1 つまたは複数の文字で表現される L'characters'
の形式でのみでした。単一文字のワイド文字リテラルの値は、ワイド文字セットの実行での文字エンコードです。
文字列リテラル u"UTF-16_string"
と U"UTF-32_string"
新しい型の文字列リテラルを作成するための新しい形式が以下の 2 つ用意されています。
u"UTF-16_string"
は、char16_t 型の文字で構成される文字列リテラルです(たとえばu"string_containing_UTF-16_encoding_characters"
)。
U"UTF-32_string"
は、char32_t 型の文字で構成される文字列リテラルです(たとえばU"string_containing_UTF-32_encoding_characters"
)。