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

Unicode Iterators

Boost , Boost.Regex 5.1.2 , Internal Details

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
Synopsis
#include <boost/regex/pending/unicode_iterator.hpp>
template <class BaseIterator, class U16Type = ::boost::uint16_t>
class u32_to_u16_iterator;
template <class BaseIterator, class U32Type = ::boost::uint32_t>
class u16_to_u32_iterator;
template <class BaseIterator, class U8Type = ::boost::uint8_t>
class u32_to_u8_iterator;
template <class BaseIterator, class U32Type = ::boost::uint32_t>
class u8_to_u32_iterator;
template <class BaseIterator>
class utf16_output_iterator;
template <class BaseIterator>
class utf8_output_iterator;
Description

Этот заголовок содержит выбор адаптеров итератора, которые делают последовательность символов в одном кодировании «похожей» на последовательность символов только для чтения в другом кодировании.

template <class BaseIterator, class U16Type = ::boost::uint16_t>
class u32_to_u16_iterator
{
   u32_to_u16_iterator();
   u32_to_u16_iterator(BaseIterator start_position);
   // Other standard BidirectionalIterator members here...
};

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

template <class BaseIterator, class U32Type = ::boost::uint32_t>
class u16_to_u32_iterator
{
   u16_to_u32_iterator();
   u16_to_u32_iterator(BaseIterator start_position);
   u16_to_u32_iterator(BaseIterator start_position, BaseIterator start_range, BaseIterator end_range);
   // Other standard BidirectionalIterator members here...
};

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

Конструктор из трех аргов этого класса берет начало и конец базовой последовательности, а также положение для начала итерации. Этот конструктор подтверждает, что базовая последовательность имеет достоверно закодированные конечные точки: это предотвращает случайное увеличение / декрементирование после конца базовой последовательности в результате недействительных последовательностей кода UTF16 в конечных точках базового диапазона.

template <class BaseIterator, class U8Type = ::boost::uint8_t>
class u32_to_u8_iterator
{
   u32_to_u8_iterator();
   u32_to_u8_iterator(BaseIterator start_position);
   // Other standard BidirectionalIterator members here...
};

Двунаправленный адаптер итератора, который делает базовую последовательность символов UTF32 похожей на (только для чтения) последовательность символов UTF8.

template <class BaseIterator, class U32Type = ::boost::uint32_t>
class u8_to_u32_iterator
{
   u8_to_u32_iterator();
   u8_to_u32_iterator(BaseIterator start_position);
   u8_to_u32_iterator(BaseIterator start_position, BaseIterator start_range, BaseIterator end_range);
   // Other standard BidirectionalIterator members here...
};

Двунаправленный адаптер итератора, который делает базовую последовательность символов UTF8 похожей на (только для чтения) последовательность символов UTF32.

Конструктор из трех аргов этого класса берет начало и конец базовой последовательности, а также положение для начала итерации. Этот конструктор подтверждает, что базовая последовательность имеет достоверно закодированные конечные точки: это предотвращает случайное увеличение / декрементирование после конца базовой последовательности в результате недействительных последовательностей кода UTF8 в конечных точках базового диапазона.

template <class BaseIterator>
class utf16_output_iterator
{
   utf16_output_iterator(const BaseIterator& b);
   utf16_output_iterator(const utf16_output_iterator& that);
   utf16_output_iterator& operator=(const utf16_output_iterator& that);
   // Other standard OutputIterator members here...
};

Простой адаптер OutputIterator принимает значения UTF32 в качестве входных данных и пересылает ихBaseIterator bв качестве UTF16. Значения UTF32 и UTF16 находятся в собственном байт-порядке.

template <class BaseIterator>
class utf8_output_iterator
{
   utf8_output_iterator(const BaseIterator& b);
   utf8_output_iterator(const utf8_output_iterator& that);
   utf8_output_iterator& operator=(const utf8_output_iterator& that);
   // Other standard OutputIterator members here...
};

Простой адаптер OutputIterator принимает значения UTF32 в качестве входных данных и пересылает их на.BaseIterator bкак UTF8. Входные значения UTF32 должны быть в собственном байт-порядке.


PrevUpHomeNext

Статья Unicode Iterators раздела Boost.Regex 5.1.2 Internal Details может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Internal Details ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 07:53:51/0.0059869289398193/0