namespace std {
enum codecvt_mode {
consume_header = 4,
generate_header = 2,
little_endian = 1
};
}
概要
文字コード変換の設定をするための列挙型。
列挙値 | 説明 |
---|---|
consume_header |
読み込み時に先頭のバイトオーダーマーク(BOM)を消費する |
generate_header |
先頭にバイトオーダーマーク(BOM)を出力する |
little_endian |
リトルエンディアンで出力する(デフォルト動作はビッグエンディアン) |
この型は、以下のクラステンプレートにおいて、テンプレート仮引数として使用されている。
非推奨・削除の詳細
Unicodeの文字コード変換を行うこれらのクラスは、不正なコードポイントに対する安全なエラー処理の方法を提供していなかったため、セキュリティ上の欠陥があった。
仕様もあいまいであったため、不正なコードポイントに対してどのように振る舞うかも不明であった。
Unicode以外のShift_JISやBig5といった文字コードの利用が急激に減少している。標準ライブラリでの現代的なUnicodeの変換機能は非常に必要とされているが、<codecvt>
の設計はお粗末なものだった。将来より良いものを作るために、これらの機能は非推奨・削除とする。
標準ライブラリにUnicodeの文字コード変換をする代替機能はないため、他の専門特化した文字コード変換のライブラリを使用すること。
バージョン
言語
- C++11
処理系
- Clang: 3.0 ✅
- GCC: 5.1 ✅
- ICC: ??
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅, 2015 ✅, 2017 ✅