tiny utf8
Version 4.4.3
Tiny-UTF8 est une bibliothèque pour une intégration extrêmement facile d'Unicode dans un projet arbitraire C ++ 11. La bibliothèque se compose uniquement de la classe utf8_string , qui agit comme un remplacement de dépôt de std::string . Son implémentation est avec succès au milieu entre une petite empreinte mémoire et un accès rapide. Toutes les fonctionnalités de std::string sont donc remplacées par la version UTF-32 basée sur CodePoint correspondante - traduire chaque accès à UTF-8 sous le capot.
c ) ( r ) begin / end return les itérateurs basés sur le code de code, tandis que raw_ ( c ) ( r ) begin / end maintenant les itérateurs basés sur les octets.str.erase( std::remove( str.begin() , str.end() , U'W' ) , str.end() ) fonctionnera, mais str.erase( std::remove( str.raw_begin() , str.raw_end() , U'W' ) , str.raw_end() ) ne sera pas toujours). La raison en est: après l'appel à std::remove , la taille des données de chaîne pourrait avoir changé et le deuxième appel à str.raw_end() pourrait avoir donné un itérateur maintenant invalidé.std::stringsizeof(utf8_string) ! C'est-à-dire, y compris le suivi