Annex D (normative) Compatibility features [depr]

D.15 Deprecated standard code conversion facets [depr.locale.stdcvt]

D.15.2 Requirements [depr.locale.stdcvt.req]

Для каждого из трех аспектов преобразования кода codecvt_­utf8, codecvt_­utf16и codecvt_­utf8_­utf16:

  • Elem тип широких символов, например wchar_­t, char16_­tили char32_­t.

  • Maxcode - это самый большой код с широкими символами, который фасет будет читать или писать без сообщения об ошибке преобразования.

  • Если (Mode & consume_­header), то при чтении многобайтовой последовательности фасет должен использовать начальную последовательность заголовка, если она присутствует, для определения порядка следования байтов последующей многобайтовой последовательности, которая должна быть прочитана.

  • Если (Mode & generate_­header), фасет должен генерировать начальную последовательность заголовка при записи многобайтовой последовательности, чтобы объявить о порядке следования записываемой последующей многобайтовой последовательности.

  • Если (Mode & little_­endian), фасет должен генерировать многобайтовую последовательность в обратном порядке, в отличие от стандартного обратного порядка байтов.

Для грани : codecvt_­utf8

  • Фасет должен преобразовывать многобайтовые последовательности UTF-8 в UCS2 или UCS4 (в зависимости от размера Elem) в программе.

  • Порядок байтов не влияет на то, как читаются или записываются многобайтовые последовательности.

  • Многобайтовые последовательности могут быть записаны в виде текстового или двоичного файла.

Для грани : codecvt_­utf16

  • Фасет должен преобразовывать многобайтовые последовательности UTF-16 в UCS2 или UCS4 (в зависимости от размера Elem) в программе.

  • Многобайтовые последовательности должны читаться или записываться в соответствии с указанным выше Mode флагом.

  • Многобайтовые последовательности могут быть записаны только как двоичный файл. Попытка записи в текстовый файл приводит к неопределенному поведению.

Для грани : codecvt_­utf8_­utf16

  • Фасет должен преобразовывать многобайтовые последовательности UTF-8 в UTF-16 (один или два 16-битных кода) в программе.

  • Порядок байтов не влияет на то, как читаются или записываются многобайтовые последовательности.

  • Многобайтовые последовательности могут быть записаны в виде текстового или двоичного файла.

См. Также: ISO / IEC 10646-1: 1993.