コード例 #1
0
UTF8iterator UTF8string::utf8_erase( const UTF8iterator& position )
{
    if ( position == utf8_end() )
        return utf8_end();

    if ( position == utf8_end() - 1 )
    {
        utf8_pop();
        return utf8_end();
    }

    const size_t d = static_cast<size_t>( position - utf8_begin() );
    utf8_erase( d, 1U );
    return utf8_begin() + d;
}
コード例 #2
0
UTF8string& UTF8string::utf8_reverse()
{
    if ( _utf8length > 1 )
    {
        UTF8iterator it = utf8_end();
        UTF8string rev;
        _utf8string = ( utf8_reverse_aux_( it, utf8_iterator_(), rev ) )._utf8string;
    }

    return *this;
}
コード例 #3
0
UTF8iterator UTF8string::utf8_erase( const UTF8iterator& first, const UTF8iterator& last )
{
    if ( first == last )
        return utf8_end();

    if ( first == utf8_begin() && last == utf8_end() )
    {
        utf8_clear();
        return utf8_end();
    }

    const UTF8iterator& REAL_FIRST = first < last ? first : last;
    const UTF8iterator& REAL_LAST  = first < last ? last : first;

    const size_t INDEX = static_cast<size_t>( REAL_FIRST - utf8_begin() );
    const size_t COUNT = static_cast<size_t>( REAL_LAST - REAL_FIRST );
    utf8_erase( INDEX, COUNT );

    return utf8_begin() + INDEX;
}
コード例 #4
0
ファイル: lo_string.hpp プロジェクト: vijaykumarm108/lolibc
 inline size_type		length (void) const	{ return (distance (utf8_begin(), utf8_end())); }