unicode.h.xml 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <chapter xml:id="unicode.h">
  2. <title><tt>__vic/unicode.h</tt></title>
  3. <p>Утилиты для поддержки <link href="https://www.unicode.org/">Unicode</link>.
  4. </p>
  5. <chapter xml:id="unicode_t">
  6. <title><tt>unicode_t</tt></title>
  7. <code-block lang="C++">
  8. using unicode_t = char32_t; // since C++11
  9. // или
  10. using unicode_t = uint_least32_t; // C++98
  11. </code-block>
  12. <p>Тип, предназначениый для хранения Unicode
  13. <link href="https://www.unicode.org/glossary/#code_point">code point</link>.</p>
  14. </chapter>
  15. <chapter xml:id="utf_transcode">
  16. <title><tt>utf_transcode()</tt></title>
  17. <code-block lang="C++"><![CDATA[
  18. template<class UTFReader, class UTFWriter>
  19. void utf_transcode(UTFReader r, UTFWriter w);
  20. ]]></code-block>
  21. <p>Алгоритм, читающий code points типа <xref to="unicode_t"/> из
  22. <tt>UTFReader</tt>, используя <tt>r.read()</tt>, и записывающий их в
  23. <tt>UTFWriter</tt>, используя <tt>w.write()</tt>.</p>
  24. </chapter>
  25. <chapter xml:id="unicode_code_point_constants">
  26. <title><tt>Code point constants</tt></title>
  27. <code-block lang="C++">
  28. constexpr unicode_t unicode_max = 0x10FFFF;
  29. constexpr unicode_t unicode_bom = 0xFEFF;
  30. constexpr unicode_t unicode_replacement_char = 0xFFFD;
  31. </code-block>
  32. <p>Именованные константы некоторых полезных Unicode code points.</p>
  33. </chapter>
  34. </chapter>