tiny utf8
Version 4.4.3
Tiny-utf8 is a library for extremely easy integration of Unicode into an arbitrary C++11 project.
The library consists solely of the class utf8_string, which acts as a drop-in replacement for std::string.
Its implementation is successfully in the middle between small memory footprint and fast access. All functionality of std::string is therefore replaced by the corresponding codepoint-based UTF-32 version - translating every access to UTF-8 under the hood.
c)(r)begin/end now return codepoint-based iterators, while raw_(c)(r)begin/end now return byte-based iterators.str.erase( std::remove( str.begin() , str.end() , U'W' ) , str.end() ) will work, but str.erase( std::remove(str.raw_begin(),str.raw_end(), U'W' ) ,str.raw_end()) will not (at least not always). The reason is: after the call to std::remove, the size of the string data might have changed and the second call to str.raw_end() might have yielded a now-invalidated iterator.std::stringsizeof(utf8_string)! That is, including the trailing