P0482R5: char8_t: A type for UTF-8 characters and strings (Revision 5)
がC++20に採択され、めでたくchar8_tが標準入りしたわけですが、このP0482R5によくわからない点があります。
Changes since P0482R4の節に
Updated [depr.locale.category] and [depr.fs.path.factory] with changes suggested by Tim Song to ensure behavior remains unchanged.
とあり、なぜかcodecvt<char16_t, char8_t, mbstate_t>
, codecvt<char32_t, char8_t, mbstate_t>
, codecvt_byname<char16_t, char8_t, mbstate_t>
, codecvt_byname<char32_t, char8_t, mbstate_t>
が追加されています。
codecvtはエラーハンドリングがガバのプーさんだから消すねっ!ということでC++17で多くが、残っていたcodecvt<char16_t, char, mbstate_t>
, codecvt<char32_t, char, mbstate_t>
, codecvt_byname<char16_t, char, mbstate_t>
, codecvt_byname<char32_t, char, mbstate_t>
もC++20でdeprecatedになったことで完全にcodecvtは空気になったと認識していたのですが、
これはUnicode間の変換がガバガバなまま復活を遂げたと理解すればいいのでしょうか・・・?
回答1件
あなたの回答
tips
プレビュー