- codecvt[meta header]
- std[meta namespace]
- enum[meta id-type]
- cpp11[meta cpp]
- cpp17deprecated[meta cpp]
- cpp26removed[meta cpp]
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 [mark verified]
- GCC: 5.1 [mark verified]
- ICC: ??
- Visual C++: 2010 [mark verified], 2012 [mark verified], 2013 [mark verified], 2015 [mark verified], 2017 [mark verified]