私が理解していることから、achar
は ASCII 文字を格納char16_t
してchar32_t
も安全ですが、Unicode の文字を格納しても安全です。 ?)。しかし、私はその背後にある目的が何であるか疑問に思っていwchar_t
ます。その型を新しいコードで使用する必要がありますか、それとも単に古いコードをサポートするためのものですか? wchar_t
私が理解していることから、そのサイズが a よりも大きいという保証がなかった場合、古いコードの の目的は何でしたchar
か? 明確化はいいでしょう!
質問する
31023 次
2 に答える
23
この型wchar_t
は、Unicode が 16 ビット表現の作成を約束したときに標準に組み込まれました。ほとんどのベンダーはwchar_t
32 ビットを選択していますが、ある大手ベンダーは 16 ビットを選択しています。Unicode は 16 ビット (たとえば 20 ビット) 以上を使用するため、より良い文字タイプを使用する必要があると感じられました。
の意図char16_t
は UTF16 を表すことであり、 char32_t
Unicode 文字を直接表すことを意図しています。ただし、wchar_t
基本的なインターフェイスの一部としてを使用しているシステムでは、 wchar_t
. 制約がない場合はchar
、UTF8 を使用して Unicode を表現するために個人的に使用します。char16_t
との問題char32_t
は、標準の C++ ライブラリでさえ完全にサポートされていないことです。たとえば、これらの型を直接サポートするストリームはなく、これらの型のストリームをインスタンス化するだけでは機能しません。
于 2013-09-28T16:06:47.380 に答える