Unicode 文字型とリテラル(C++11)

提供: RAD Studio
移動先: 案内検索

従来のコンパイラにおける C++11 機能 への移動


C++Builder 2009 には Unicode の新しい文字型と文字リテラルが実装されています。これらの型は C++Builder 2009 に追加された C++0x 機能の 1 つです。

文字型 char16_tchar32_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")。

関連項目