tiny utf8
Version 4.4.3
Tiny-UTF8は、Unicodeを任意のC ++ 11プロジェクトに非常に簡単に統合するライブラリです。ライブラリは、 std::stringのドロップイン置換として機能するクラスutf8_stringのみで構成されています。その実装は、小さなメモリフットプリントと高速アクセスの中間に正常にあります。したがって、 std::stringのすべての機能は、対応するCodePointベースのUTF-32バージョンに置き換えられます - すべてのアクセスをフードの下でUTF-8への翻訳。
c )( r ) begin / endはコードポイントベースのイテレーターを返し、 raw_ ( c )( r ) begin / endはバイトベースのイテレーターを返すことを意味します。str.erase( std::remove( str.begin() , str.end() , U'W' ) , str.end() )動作しますが、 str.erase( std::remove( str.raw_begin() str.raw_end() , , U'W' ) , str.raw_end() )その理由は、 std::removeの呼び出しの後、文字列データのサイズが変更され、 str.raw_end()への2回目の呼び出しが現在で検証されたイテレータを生成した可能性があります。std::stringのドロップイン交換sizeof(utf8_string)の長さまでの文字列の小さな文字列最適化(SSO)!つまり、後続の