Byla vydána knihovna C++ verze 0.9.0 (standard C++20). libunicódeProjekt vyvíjí tým vývojářů terminálových emulátorů. Obrys a skořápky Endo (v aktivním vývoji) a je licencován pod licencí Apache 2.0.
- podpora standardů Unicode 17.0:
- API pro získávání vlastností Unicode;
- SIMD optimalizace některých funkcí (pomocí std::simd nebo std::experimental::simd, pokud je k dispozici);
- optimalizovaná konverze UTF-8 <-> UTF-16/UTF-32;
- ekvivalentní funkce wcwidth(int unicode::width(char32_t));
- segmentace textu pomocí grafémů, symbolů, emoji a skriptů;
- převod velkých a malých písmen a porovnávání řetězců;
- API pro segmentaci textu na vysoké úrovni vhodné pro implementaci tvarování textu.
- testovací pokrytí většiny funkcí knihovny (šířka symbolů a segmentace).
Balíček také obsahuje konzolový nástroj unicode-query pro získání podrobných informací o řetězcích.
Změny:
- přidáno API pro grapheme_cluster_width;
- vylepšení práce s verzemi Unicode („Věk“);
- plná podpora UAX #15 Normalizační formuláře Unicode s podporou zpracování streamu:
normalizační kód norm(Normalization_Form::NFC); // Vložení rozloženého e + combining acute, poté nového startéru pro spuštění emise auto result = norm.feed(U'e'); CHECK(result.empty()); // stále se ukládá do bufferu result = norm.feed(U'u0301′); CHECK(result.empty()); // stále se ukládá do bufferu (kombinační značka) result = norm.feed(U'x'); // startér spouští emisi předchozího segmentu REQUIRE_FALSE(result.empty()); CHECK(result == U"u00E9"); // e + acute složené do e-acute result = norm.flush(); CHECK(result == U"x"); // poslední segment
- Funkce script_extensions nyní vrací std::optional. >;
- bylo implementováno pravidlo GB9c pro dělení skupin grafémů pro kombinace znaků v indických jazycích;
- V grapheme_segmenter byla opravena pravidla pro GB11 a GB4/GB5; zastaralé API bylo odstraněno;
- Byla implementována SIMD-optimalizovaná konverze UTF-8 na UTF-16/UTF-32;
- šířka spojujících se symbolů Hangul V/T je nyní nulová;
- Byla implementována segmentace podle hranic slov;
- opravy v C API;
- refaktoring sestavovacího systému a pomocného generátoru tabulek v C++;
- Přidány komplexní testy pro konverzi UTF-16/UTF-32;
- Do CI byla přidána statická verze utility unicode-query.
Zdroj: linux.org.ru
