Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost.Locale: boost::locale::util::base_converter Class Reference

Boost , ,

boost::locale::util::base_converter Class Reference

Этот класс представляет собой простой конвертер без состояния от UCS-4 и до UCS-4 для каждой отдельной точки кода.Больше...

<#include <boost/locale/util.hpp>>

Public Member Functions

virtual int max_len () const
 
virtual bool is_thread_safe () const
 
virtual base_converterclone () const
 
virtual uint32_t to_unicode (char const *&begin, char const *end)
 
virtual uint32_t from_unicode (uint32_t u, char *begin, char const *end)
 

Static Public Attributes

static const uint32_t illegal =utf::illegal
 
static const uint32_t incomplete =utf::incomplete
 

Detailed Description

Этот класс представляет собой простой конвертер без состояния от UCS-4 и до UCS-4 для каждой отдельной точки кода.

Этот класс используется для создания интерфейса std::codecvt для преобразования кодирования utf-16/utf-32 в кодирование, поддерживаемое этим преобразователем.

Обратите внимание, что этот конвертер должен быть полностью без гражданства. Полностью без гражданства означает, что он никогда не должен предполагать, что он называется в каком-либо определенном порядке на тексте. Даже если само кодирование кажется безгосударственным, как окна 1255 или джи-переключения, некоторые кодеры (в первую очередь иконки) могут фактически составить несколько кодовых точек в одну или разложить их в случае обнаружения составных символов. Поэтому будьте очень осторожны при реализации этих преобразователей для определенного набора символов.

Member Function Documentation

virtual base_converter* boost::locale::util::base_converter::clone ( ) конст
inlinevirtual

Создайте полиморфную копию этого объекта, обычно называемую только еслиis_thread_safe()Возвращение ложных

virtual uint32_t boost::locale::util::base_converter::from_unicode ( uint32_t  u,
char *  begin,
char const *  end 
)
inlinevirtual

Преобразуйте одну кодовую точкуув кодировку и храните ее в диапазоне [начало, конец].

Если u является недействительной кодовой точкой Unicode или она не может быть правильно отображена в представленном наборе символов,незаконныйдолжен быть возвращен.

Если u можно преобразовать в последовательность байтов c1, ..., cN (1<= N<=max_len()тогда

  1. Если конец - начало >= N, c1, ... cN пишутся начиная с начала и N возвращается
  2. Если конец - начало< N, неполное возвращается, то не уточняется, что будет храниться в байтах в диапазоне [начало, конец].
virtual bool boost::locale::util::base_converter::is_thread_safe ( ) конст
inlinevirtual

Возвращается верно, если вызов функций из_unicode, в_unicode и max_len безопасен.

Правило большого пальца: если в реализации этого класса используются простые таблицы, которые неизменны или являются чисто алгоритмическими, как UTF-8, - так что он не делится каким-либо изменяемым битом для независимых вызовов to_unicode, от_unicode, вы можете установить его на истинность, в противном случае, например, если вы используете дескриптор iconv_t или UConverter в качестве объекта преобразования возвращают ложно, и этот объект будет клонирован для каждого использования.

virtual int boost::locale::util::base_converter::max_len ( ) конст
inlinevirtual

Вернуть максимальную длину, в которую может быть преобразована одна кодовая точка Unicode, например, для UTF-8 она равна 4, для Shift-JIS она равна 2 и ISO-8859-1 равна 1.

virtual uint32_t boost::locale::util::base_converter::to_unicode ( char const *&  begin,
char const *  end 
)
inlinevirtual

Преобразуйте один символ, начинающийся с начала и заканчивающийся в конце, в кодовую точку Unicode.

если действительная входная последовательность, найденная в [start,code_point_end], такая какstart<code_point_end&&code_point_end<=end, она преобразуется в ее Однозначный эквивалент точки кода,началоустанавливается накод_точка_конец

Если неполная входная последовательность, найденная в [начать,конец, т.е. у меня есть такойкод_point_end, чтокод_point_end>конециначать,код_point_end) будет действительной входной последовательностью, тонеполныйвозвращается, начало остается неизменным, например для преобразования UTF-8 a *begin = 0xc2,начать+1 =конецявляется такой ситуацией.

Если найдена недействительная входная последовательность, то есть существует последовательность [start,code_point_end), такая какcode_point_end<=end, которая является незаконной для этого кодирования,illegalвозвращается и начинает оставаться неизменной. Например, если * начинается = 0xFF и начинается< конец для UTF-8, тонезаконновозвращается.

Member Data Documentation

const uint32_t boost::locale::util::base_converter::illegal =utf::illegal
static

Это значение должно быть возвращено, когда наблюдается незаконная последовательность ввода или кодовая точка: Например, если кодовая точка UCS-32 находится в диапазоне, зарезервированном для суррогатов UTF-16, или обнаружена недействительная последовательность UTF-8.

const uint32_t boost::locale::util::base_converter::incomplete =utf::incomplete
static

Это значение возвращается в следующих случаях: Была обнаружена неполная входная последовательность или был предоставлен недостаточный выходной буфер, поэтому полный выход не мог быть записан.


The documentation for this class was generated from the following file:

Статья Boost.Locale: boost::locale::util::base_converter Class Reference раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:52:33/0.0086770057678223/1