tiny utf8
Version 4.4.3
Tiny-UTF8 es una biblioteca para una integración extremadamente fácil de Unicode en un proyecto arbitrario de C ++ 11. La biblioteca consiste únicamente en la clase utf8_string , que actúa como un reemplazo de entrega de std::string . Su implementación está en el medio entre la pequeña huella de memoria y el acceso rápido. Por lo tanto, toda la funcionalidad de std::string se reemplaza por la versión UTF-32 basada en CodePoint correspondiente, traduciendo cada acceso a UTF-8 debajo del capó.
c ) ( r ) begin / end ahora devuelve los iteradores basados en CodePoint, mientras que raw_ ( c ) ( r ) begin / end ahora devuelve iteradores basados en bytes.str.erase( std::remove( str.begin() , str.end() , U'W' ) , str.end() ) funcionará, pero str.erase( std::remove( str.raw_begin() , str.raw_end() , U'W' ) , str.raw_end() ) no lo hará (al menos no siempre). La razón es: después de la llamada a std::remove , el tamaño de los datos de la cadena podría haber cambiado y la segunda llamada a str.raw_end() podría haber arrojado un iterador ahora invalorado.std::stringsizeof(utf8_string) ! Es decir, incluido el final