Skip to content

Latest commit

 

History

History
17 lines (12 loc) · 709 Bytes

017-cpp17-core-u8-character-literals.md

File metadata and controls

17 lines (12 loc) · 709 Bytes

UTF-8文字リテラル

C++17ではUTF-8文字リテラルが追加された。

char c = u8'a' ;

UTF-8文字リテラルは文字リテラルにプレフィクスu8をつける。UTF-8文字リテラルはUTF-8のコード単位一つで表現できる文字を扱うことができる。UCSの規格としては、C0制御文字と基本ラテン文字Unicodeブロックが該当する。UTF-8文字リテラルに書かれた文字が複数のUTF-8コード単位を必要とする場合はエラーとなる。

// エラー
// U+3042はUTF-8は0xE3, 0x81, 0x82という3つのコード単位で表現する必要があるため
u8'' ;

機能テストマクロはない。