Skip to content

Latest commit

 

History

History
32 lines (21 loc) · 1.93 KB

codecvt.md

File metadata and controls

32 lines (21 loc) · 1.93 KB

codecvt

  • codecvt[meta header]
  • cpp11[meta cpp]
  • cpp17deprecated[meta cpp]

<codecvt>ヘッダでは、文字コード変換のためのファセットクラスを定義する。

名前 説明 対応バージョン
codecvt_mode 文字コード変換の設定をするための列挙型(enum) C++11
C++17から非推奨
codecvt_utf8 UTF-8への文字コード変換(class template) C++11
C++17から非推奨
codecvt_utf16 UTF-16への文字コード変換(class template) C++11
C++17から非推奨
codecvt_utf8_utf16 UTF-8とUTF-16間での文字コード変換(class template) C++11
C++17から非推奨

非推奨の詳細

Unicodeの文字コード変換を行うこれらのクラスは、不正なコードポイントに対する安全なエラー処理の方法を提供していなかったため、セキュリティ上の欠陥があった。

仕様もあいまいであったため、不正なコードポイントに対してどのように振る舞うかも不明であった。

Unicode以外のShift_JISやBig5といった文字コードの利用が急激に減少している。標準ライブラリでの現代的なUnicodeの変換機能は非常に必要とされているが、<codecvt>の設計はお粗末なものだった。将来より良いものを作るために、これらの機能は非推奨とする。

標準ライブラリにUnicodeの文字コード変換をする代替機能はないため、他の専門特化した文字コード変換のライブラリを使用すること。

バージョン

言語

  • C++11

参照