Новые unicode символы в C++ 0x

<blockquote>New blog is out!</blockquote>

Если вы хотите использовать тот же текст, что и код. Затем добавьте тег, как это.

<pre> <blockquote>New blog is out!</blockquote></pre>
25
задан Marc Mutz - mmutz 19 June 2012 в 20:47
поделиться

1 ответ

1) char16_t and char32_t will be distinct new types, so overloading on them will be possible.

Quote from ISO/IEC JTC1 SC22 WG21 N2018:

Define char16_t to be a typedef to a distinct new type, with the name _Char16_t that has the same size and representation as uint_least16_t. Likewise, define char32_t to be a typedef to a distinct new type, with the name _Char32_t that has the same size and representation as uint_least32_t.

Further explanation (from a devx.com article "Prepare Yourself for the Unicode Revolution"):

You're probably wondering why the В первую очередь необходимы типы и ключевые слова _Char16_t и _Char32_t когда typedefs uint_least16_t и uint_least32_t уже доступны. Основная проблема в том, что новые виды решить является перегрузкой. Это снег возможно перегрузить функции, которые возьмите _Char16_t и _Char32_t аргументы и создать специализации например std :: basic_string <_Char16_t> которые отличаются от std :: basic_string .

2) u16string и u32string действительно являются частью C ++ 0x, а не только GCC'измов, поскольку они упоминаются в различных стандартных черновиках . Они будут включены в новый заголовок . Цитата из той же статьи:

Стандартная библиотека также предоставляет _Char16_t и _Char32_t typedefs, по аналогии с typedefs wstring , wcout и т. Д. Для следующих стандартных классов:

filebuf, streambuf, streampos, streamoff, ios, istream, ostream, fstream, ifstream, ofstream, stringstream, istringstream, ostringstream, строка

29
ответ дан 28 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: