A versione 0.9.0 di a biblioteca C++ (standard C++20) hè stata publicata. libunicodeU prugettu hè sviluppatu da una squadra di sviluppatori di emulatori di terminale. Contour è cunchiglia Sbanditu (sottu sviluppu attivu) è hè licenziatu sottu a licenza Apache 2.0.
- sustegnu per i standard unicode 17.0:
- API per ottene e proprietà Unicode;
- Ottimizazione SIMD di alcune funzioni (usendu std::simd o std::experimental::simd se dispunibule);
- cunversione ottimizzata UTF-8 <-> UTF-16/UTF-32;
- funzione equivalente wcwidth(int unicode::width(char32_t));
- segmentazione di testu per grafemi, simboli, emoji è script;
- cunversione di maiuscule è minuscule è paragone di stringhe;
- una API di segmentazione di testu di altu livellu adatta per l'implementazione furmazione di testu.
- prova a cupertura di a maiò parte di e funzioni di a biblioteca (larghezza di u simbulu è segmentazione).
U pacchettu include ancu un'utilità di cunsola, unicode-query, per ottene informazioni dettagliate nantu à e stringhe.
Cambiamenti:
- aghjunta l'API grapheme_cluster_width;
- migliuramenti in u travagliu cù e versioni Unicode ("Age");
- sustegnu cumpletu UAX #15 Forme di Nurmalizazione Unicode cù supportu per u trattamentu di u flussu:
nurmalizer norm(Normalization_Form::NFC); // Alimentu decompostu e + cumbinazione acuta, dopu un novu starter per attivà l'emissione auto result = norm.feed(U'e'); CHECK(result.empty()); // sempre in buffer result = norm.feed(U'u0301′); CHECK(result.empty()); // sempre in buffer (marca di cumbinazione) result = norm.feed(U'x'); // starter attiva l'emissione di u segmentu precedente REQUIRE_FALSE(result.empty()); CHECK(result == U"u00E9"); // e + acutu cumpostu à e-acutu result = norm.flush(); CHECK(result == U"x"); // segmentu finale
- A funzione script_extensions avà restituisce std::optional >;
- A regula GB9c per dividisce i gruppi di grafemi per e cumminazzioni di caratteri in e lingue indiane hè stata implementata;
- In grapheme_segmenter, e regule per GB11 è GB4/GB5 sò state currette; l'API obsoleta hè stata eliminata;
- A cunversione ottimizzata per SIMD di UTF-8 in UTF-16/UTF-32 hè stata implementata;
- a larghezza di i simbuli Hangul V/T cunnessi hè avà zero;
- A segmentazione per limiti di parolle hè stata implementata;
- Correzioni di l'API C;
- rifatturazione di u sistema di compilazione è di u generatore di tabelle C++ ausiliariu;
- Aghjuntu testi cumpleti per a cunversione UTF-16/UTF-32;
- Una versione statica di l'utilità unicode-query hè stata aghjunta à CI.
Source: linux.org.ru
