ReactOS 0.4.16-dev-287-g2d3f3a1
basic_string< _CharT, _Traits, _Alloc > Class Template Reference

#include <_string.h>

Inheritance diagram for basic_string< _CharT, _Traits, _Alloc >:
Collaboration diagram for basic_string< _CharT, _Traits, _Alloc >:

Public Types

typedef _CharT value_type
 
typedef _Traits traits_type
 
typedef value_typepointer
 
typedef const value_typeconst_pointer
 
typedef value_typereference
 
typedef const value_typeconst_reference
 
typedef _Base::size_type size_type
 
typedef ptrdiff_t difference_type
 
typedef random_access_iterator_tag _Iterator_category
 
typedef const value_typeconst_iterator
 
typedef value_typeiterator
 
typedef _STLP_PRIV _String_reserve_t _Reserve_t
 
typedef _Base::allocator_type allocator_type
 
typedef _Base::_Iterator_category _Iterator_category
 
typedef _Base::traits_type traits_type
 
typedef _Base::_Reserve_t _Reserve_t
 
typedef _Base::traits_type traits_type
 
typedef _STLP_PRIV _DBG_iter< _Base, _STLP_PRIV _DbgTraits< _Nonconst_traits< value_type > > > iterator
 
typedef _STLP_PRIV _DBG_iter< _Base, _STLP_PRIV _DbgTraits< _Const_traits< value_type > > > const_iterator
 
typedef _Base::_Reserve_t _Reserve_t
 

Public Member Functions

allocator_type get_allocator () const
 
 basic_string (const allocator_type &__a=allocator_type())
 
 basic_string (_Reserve_t, size_t __n, const allocator_type &__a=allocator_type())
 
 basic_string (const _Self &)
 
 basic_string (const _Self &__s, size_type __pos, size_type __n=npos, const allocator_type &__a=allocator_type())
 
 basic_string (const _CharT *__s, size_type __n, const allocator_type &__a=allocator_type())
 
 basic_string (const _CharT *__s, const allocator_type &__a=allocator_type())
 
 basic_string (size_type __n, _CharT __c, const allocator_type &__a=allocator_type())
 
 basic_string (__move_source< _Self > src)
 
 basic_string (const _CharT *__f, const _CharT *__l, const allocator_type &__a _STLP_ALLOCATOR_TYPE_DFL)
 
 if (__n > max_size() - __size) this -> _M_throw_length_error()
 
 if (__len > max_size()||__len< __size) __len
 
template<class _InputIter >
void _M_range_initialize (_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
 
template<class _ForwardIter >
void _M_range_initialize (_ForwardIter __f, _ForwardIter __l, const forward_iterator_tag &)
 
template<class _InputIter >
void _M_range_initializeT (_InputIter __f, _InputIter __l)
 
template<class _Integer >
void _M_initialize_dispatch (_Integer __n, _Integer __x, const __true_type &)
 
template<class _InputIter >
void _M_initialize_dispatch (_InputIter __f, _InputIter __l, const __false_type &)
 
_Selfoperator= (const _Self &__s)
 
_Selfoperator= (const _CharT *__s)
 
_Selfoperator= (_CharT __c)
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator rend () const
 
size_type size () const
 
size_type length () const
 
size_type max_size () const
 
void resize (size_type __n, _CharT __c)
 
void resize (size_type __n)
 
void reserve (size_type=0)
 
size_type capacity () const
 
void clear ()
 
bool empty () const
 
const_reference operator[] (size_type __n) const
 
reference operator[] (size_type __n)
 
const_reference at (size_type __n) const
 
reference at (size_type __n)
 
_Selfoperator+= (const _Self &__s)
 
_Selfoperator+= (const _CharT *__s)
 
_Selfoperator+= (_CharT __c)
 
_Selfappend (const _CharT *__first, const _CharT *__last)
 
_Selfappend (const _Self &__s)
 
_Selfappend (const _Self &__s, size_type __pos, size_type __n)
 
_Selfappend (const _CharT *__s, size_type __n)
 
_Selfappend (const _CharT *__s)
 
_Selfappend (size_type __n, _CharT __c)
 
void push_back (_CharT __c)
 
void pop_back ()
 
_Selfassign (const _Self &__s)
 
_Selfassign (const _Self &__s, size_type __pos, size_type __n)
 
_Selfassign (const _CharT *__s, size_type __n)
 
_Selfassign (const _CharT *__s)
 
_Selfassign (size_type __n, _CharT __c)
 
_Selfassign (const _CharT *__f, const _CharT *__l)
 
_Selfinsert (size_type __pos, const _Self &__s)
 
_Selfinsert (size_type __pos, const _Self &__s, size_type __beg, size_type __n)
 
_Selfinsert (size_type __pos, const _CharT *__s, size_type __n)
 
_Selfinsert (size_type __pos, const _CharT *__s)
 
_Selfinsert (size_type __pos, size_type __n, _CharT __c)
 
iterator insert (iterator __p, _CharT __c)
 
void insert (iterator __p, size_t __n, _CharT __c)
 
pointer _M_insert_aux (pointer, _CharT)
 
void _M_copy (const _CharT *__f, const _CharT *__l, _CharT *__res)
 
void _M_move (const _CharT *__f, const _CharT *__l, _CharT *__res)
 
void insert (iterator __p, const _CharT *__f, const _CharT *__l)
 
_Selferase (size_type __pos=0, size_type __n=npos)
 
iterator erase (iterator __pos)
 
iterator erase (iterator __first, iterator __last)
 
_Selfreplace (size_type __pos, size_type __n, const _Self &__s)
 
_Selfreplace (size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2)
 
_Selfreplace (size_type __pos, size_type __n1, const _CharT *__s, size_type __n2)
 
_Selfreplace (size_type __pos, size_type __n1, const _CharT *__s)
 
_Selfreplace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
 
_Selfreplace (iterator __first, iterator __last, const _Self &__s)
 
_Selfreplace (iterator __first, iterator __last, const _CharT *__s, size_type __n)
 
_Selfreplace (iterator __first, iterator __last, const _CharT *__s)
 
_Selfreplace (iterator __first, iterator __last, size_type __n, _CharT __c)
 
_Selfreplace (iterator __first, iterator __last, const _CharT *__f, const _CharT *__l)
 
size_type copy (_CharT *__s, size_type __n, size_type __pos=0) const
 
void swap (_Self &__s)
 
const _CharT * c_str () const
 
const _CharT * data () const
 
size_type find (const _Self &__s, size_type __pos=0) const
 
size_type find (const _CharT *__s, size_type __pos=0) const
 
size_type find (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find (_CharT __c) const
 
size_type find (_CharT __c, size_type __pos) const
 
size_type rfind (const _Self &__s, size_type __pos=npos) const
 
size_type rfind (const _CharT *__s, size_type __pos=npos) const
 
size_type rfind (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type rfind (_CharT __c, size_type __pos=npos) const
 
size_type find_first_of (const _Self &__s, size_type __pos=0) const
 
size_type find_first_of (const _CharT *__s, size_type __pos=0) const
 
size_type find_first_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_first_of (_CharT __c, size_type __pos=0) const
 
size_type find_last_of (const _Self &__s, size_type __pos=npos) const
 
size_type find_last_of (const _CharT *__s, size_type __pos=npos) const
 
size_type find_last_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_last_of (_CharT __c, size_type __pos=npos) const
 
size_type find_first_not_of (const _Self &__s, size_type __pos=0) const
 
size_type find_first_not_of (const _CharT *__s, size_type __pos=0) const
 
size_type find_first_not_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_first_not_of (_CharT __c, size_type __pos=0) const
 
size_type find_last_not_of (const _Self &__s, size_type __pos=npos) const
 
size_type find_last_not_of (const _CharT *__s, size_type __pos=npos) const
 
size_type find_last_not_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_last_not_of (_CharT __c, size_type __pos=npos) const
 
_Self substr (size_type __pos=0, size_type __n=npos) const
 
int compare (const _Self &__s) const
 
int compare (size_type __pos1, size_type __n1, const _Self &__s) const
 
int compare (size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2) const
 
int compare (const _CharT *__s) const
 
int compare (size_type __pos1, size_type __n1, const _CharT *__s) const
 
int compare (size_type __pos1, size_type __n1, const _CharT *__s, size_type __n2) const
 
 basic_string (const allocator_type &__a=allocator_type())
 
 basic_string (_Reserve_t __r, size_t __n, const allocator_type &__a=allocator_type())
 
 basic_string (const _Self &__s)
 
 basic_string (const _Self &__s, size_type __pos, size_type __n=npos, const allocator_type &__a=allocator_type())
 
 basic_string (const _CharT *__s, size_type __n, const allocator_type &__a=allocator_type())
 
 basic_string (const _CharT *__s, const allocator_type &__a=allocator_type())
 
 basic_string (size_type __n, _CharT __c, const allocator_type &__a=allocator_type())
 
 basic_string (__move_source< _Self > src)
 
template<class _InputIterator >
 basic_string (_InputIterator __f, _InputIterator __l, const allocator_type &__a _STLP_ALLOCATOR_TYPE_DFL)
 
_Selfoperator= (const _Self &__s)
 
_Selfoperator= (const _CharT *__s)
 
_Selfoperator= (_CharT __c)
 
_Selfoperator+= (const _Self &__s)
 
_Selfoperator+= (const _CharT *__s)
 
_Selfoperator+= (_CharT __c)
 
_Selfappend (const _Self &__s)
 
_Selfappend (const _Self &__s, size_type __pos, size_type __n)
 
_Selfappend (const _CharT *__s, size_type __n)
 
_Selfappend (const _CharT *__s)
 
_Selfappend (size_type __n, _CharT __c)
 
template<class _InputIter >
_Selfappend (_InputIter __first, _InputIter __last)
 
_Selfappend (const _CharT *__f, const _CharT *__l)
 
_Selfassign (const _Self &__s)
 
_Selfassign (const _Self &__s, size_type __pos, size_type __n)
 
_Selfassign (const _CharT *__s, size_type __n)
 
_Selfassign (const _CharT *__s)
 
_Selfassign (size_type __n, _CharT __c)
 
template<class _InputIter >
_Selfassign (_InputIter __first, _InputIter __last)
 
_Selfassign (const _CharT *__f, const _CharT *__l)
 
_Selfinsert (size_type __pos, const _Self &__s)
 
_Selfinsert (size_type __pos, const _Self &__s, size_type __beg, size_type __n)
 
_Selfinsert (size_type __pos, const _CharT *__s, size_type __n)
 
_Selfinsert (size_type __pos, const _CharT *__s)
 
_Selfinsert (size_type __pos, size_type __n, _CharT __c)
 
iterator insert (iterator __p, _CharT __c)
 
void insert (iterator __p, size_t __n, _CharT __c)
 
template<class _InputIter >
void insert (iterator __p, _InputIter __first, _InputIter __last)
 
void insert (iterator __p, const _CharT *__f, const _CharT *__l)
 
_Selferase (size_type __pos=0, size_type __n=npos)
 
iterator erase (iterator __pos)
 
iterator erase (iterator __first, iterator __last)
 
_Selfreplace (size_type __pos, size_type __n, const _Self &__s)
 
_Selfreplace (size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2)
 
_Selfreplace (size_type __pos, size_type __n1, const _CharT *__s, size_type __n2)
 
_Selfreplace (size_type __pos, size_type __n1, const _CharT *__s)
 
_Selfreplace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
 
_Selfreplace (iterator __first, iterator __last, const _Self &__s)
 
_Selfreplace (iterator __first, iterator __last, const _CharT *__s, size_type __n)
 
_Selfreplace (iterator __first, iterator __last, const _CharT *__s)
 
_Selfreplace (iterator __first, iterator __last, size_type __n, _CharT __c)
 
template<class _InputIter >
_Selfreplace (iterator __first, iterator __last, _InputIter __f, _InputIter __l)
 
_Selfreplace (iterator __first, iterator __last, const _CharT *__f, const _CharT *__l)
 
void swap (_Self &__s)
 
_Self substr (size_type __pos=0, size_type __n=npos) const
 
allocator_type get_allocator () const
 
 basic_string (const allocator_type &__a=allocator_type())
 
 basic_string (_Reserve_t __r, size_t __n, const allocator_type &__a=allocator_type())
 
 basic_string (const _Self &__s)
 
 basic_string (const _Self &__s, size_type __pos, size_type __n=npos, const allocator_type &__a=allocator_type())
 
 basic_string (const _CharT *__s, size_type __n, const allocator_type &__a=allocator_type())
 
 basic_string (const _CharT *__s, const allocator_type &__a=allocator_type())
 
 basic_string (size_type __n, _CharT __c, const allocator_type &__a=allocator_type())
 
 basic_string (__move_source< _Self > src)
 
 basic_string (const _CharT *__f, const _CharT *__l, const allocator_type &__a=allocator_type())
 
 basic_string (const_iterator __f, const_iterator __l, const allocator_type &__a=allocator_type())
 
_Selfoperator= (const _Self &__s)
 
_Selfoperator= (const _CharT *__s)
 
_Selfoperator= (_CharT __c)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
size_type size () const
 
size_type length () const
 
size_t max_size () const
 
void resize (size_type __n, _CharT __c)
 
void resize (size_type __n)
 
size_type capacity () const
 
void reserve (size_type __s=0)
 
void clear ()
 
bool empty () const
 
const_reference operator[] (size_type __n) const
 
reference operator[] (size_type __n)
 
const_reference at (size_type __n) const
 
reference at (size_type __n)
 
_Selfoperator+= (const _Self &__s)
 
_Selfoperator+= (const _CharT *__s)
 
_Selfoperator+= (_CharT __c)
 
_Selfappend (const _CharT *__f, const _CharT *__l)
 
_Selfappend (const_iterator __f, const_iterator __l)
 
_Selfappend (const _Self &__s)
 
_Selfappend (const _Self &__s, size_type __pos, size_type __n)
 
_Selfappend (const _CharT *__s, size_type __n)
 
_Selfappend (const _CharT *__s)
 
_Selfappend (size_type __n, _CharT __c)
 
void push_back (_CharT __c)
 
void pop_back ()
 
_Selfassign (const _Self &__s)
 
_Selfassign (const _Self &__s, size_type __pos, size_type __n)
 
_Selfassign (const _CharT *__s, size_type __n)
 
_Selfassign (const _CharT *__s)
 
_Selfassign (size_type __n, _CharT __c)
 
_Selfassign (const _CharT *__f, const _CharT *__l)
 
_Selfassign (const_iterator __f, const_iterator __l)
 
_Selfinsert (size_type __pos, const _Self &__s)
 
_Selfinsert (size_type __pos, const _Self &__s, size_type __beg, size_type __n)
 
_Selfinsert (size_type __pos, const _CharT *__s, size_type __n)
 
_Selfinsert (size_type __pos, const _CharT *__s)
 
_Selfinsert (size_type __pos, size_type __n, _CharT __c)
 
iterator insert (iterator __p, _CharT __c)
 
void insert (iterator __p, size_t __n, _CharT __c)
 
void insert (iterator __p, const _CharT *__f, const _CharT *__l)
 
void insert (iterator __p, const_iterator __f, const_iterator __l)
 
void insert (iterator __p, iterator __f, iterator __l)
 
_Selferase (size_type __pos=0, size_type __n=npos)
 
iterator erase (iterator __pos)
 
iterator erase (iterator __f, iterator __l)
 
_Self substr (size_type __pos=0, size_type __n=npos) const
 
_Selfreplace (size_type __pos, size_type __n, const _Self &__s)
 
_Selfreplace (size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2)
 
_Selfreplace (size_type __pos, size_type __n1, const _CharT *__s, size_type __n2)
 
_Selfreplace (size_type __pos, size_type __n1, const _CharT *__s)
 
_Selfreplace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
 
_Selfreplace (iterator __f, iterator __l, const _Self &__s)
 
_Selfreplace (iterator __f, iterator __l, const _CharT *__s, size_type __n)
 
_Selfreplace (iterator __f, iterator __l, const _CharT *__s)
 
_Selfreplace (iterator __f, iterator __l, size_type __n, _CharT __c)
 
_Selfreplace (iterator __first, iterator __last, const _CharT *__f, const _CharT *__l)
 
_Selfreplace (iterator __first, iterator __last, const_iterator __f, const_iterator __l)
 
_Selfreplace (iterator __first, iterator __last, iterator __f, iterator __l)
 
void swap (_Self &__s)
 
int compare (const _Self &__s) const
 
int compare (size_type __pos, size_type __n, const _Self &__s) const
 
int compare (size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2) const
 
int compare (const _CharT *__s) const
 
int compare (size_type __pos, size_type __n, const _CharT *__s) const
 
int compare (size_type __pos1, size_type __n1, const _CharT *__s, size_type __n2) const
 
const _CharT * c_str () const
 
const _CharT * data () const
 
size_type copy (_CharT *__s, size_type __n, size_type __pos=0) const
 
size_type find (const _Self &__s, size_type __pos=0) const
 
size_type find (const _CharT *__s, size_type __pos=0) const
 
size_type find (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find (_CharT __c) const
 
size_type find (_CharT __c, size_type __pos) const
 
size_type rfind (const _Self &__s, size_type __pos=npos) const
 
size_type rfind (const _CharT *__s, size_type __pos=npos) const
 
size_type rfind (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type rfind (_CharT __c, size_type __pos=npos) const
 
size_type find_first_of (const _Self &__s, size_type __pos=0) const
 
size_type find_first_of (const _CharT *__s, size_type __pos=0) const
 
size_type find_first_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_first_of (_CharT __c, size_type __pos=0) const
 
size_type find_last_of (const _Self &__s, size_type __pos=npos) const
 
size_type find_last_of (const _CharT *__s, size_type __pos=npos) const
 
size_type find_last_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_last_of (_CharT __c, size_type __pos=npos) const
 
size_type find_first_not_of (const _Self &__s, size_type __pos=0) const
 
size_type find_first_not_of (const _CharT *__s, size_type __pos=0) const
 
size_type find_first_not_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_first_not_of (_CharT __c, size_type __pos=0) const
 
size_type find_last_not_of (const _Self &__s, size_type __pos=npos) const
 
size_type find_last_not_of (const _CharT *__s, size_type __pos=npos) const
 
size_type find_last_not_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_last_not_of (_CharT __c, size_type __pos=npos) const
 

Static Public Member Functions

static int _STLP_CALL _M_compare (const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
 
static int _STLP_CALL _M_compare (const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
 
static int _STLP_CALL _M_compare (const_iterator __f1, const_iterator __l1, const _CharT *__f2, const _CharT *__l2)
 
static int _STLP_CALL _M_compare (const _CharT *__f1, const _CharT *__l1, const_iterator __f2, const_iterator __l2)
 
static int _STLP_CALL _M_compare (const_iterator __f1, const_iterator __l1, const_iterator __f2, const_iterator __l2)
 

Public Attributes

 _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS
 
_STLP_PRIVATE __pad1__: size_type _M_compute_next_size(size_type __n) { const size_type __size = size()
 
size_type __len = __size + (max)(__n, __size) + 1
 
return __len
 
_STLP_PRIVATE __pad3__: void _M_insert(iterator __p
 
_STLP_PRIVATE const _CharT * __first
 
_STLP_PRIVATE const _CharT const _CharT * __last
 
_STLP_PRIVATE const _CharT const _CharT bool __self_ref
 
_STLP_PRIVATE __pad4__: _Self& _M_replace(iterator __first
 
_STLP_PRIVATE iterator __last
 
_STLP_PRIVATE iterator const _CharT * __f
 
_STLP_PRIVATE iterator const _CharT const _CharT * __l
 
_STLP_PRIVATE iterator const _CharT const _CharT bool __self_ref
 

Protected Types

typedef _STLP_NON_DBG_STRING _Base
 
typedef basic_string< _CharT, _Traits, _Alloc_Self
 
typedef _STLP_PRIV __construct_checker< _STLP_NON_DBG_STRING_ConstructCheck
 
typedef _IsPOD< _CharT >::_Type _Char_Is_POD
 

Private Types

typedef basic_string< _CharT, _Traits, _Alloc_Self
 
typedef basic_string< _CharT, _Traits, _Alloc_Self
 
typedef _STLP_NO_MEM_T_STRING_BASE _Base
 
typedef _Base::_CalledFromWorkaround_t _CalledFromWorkaround_t
 

Private Member Functions

void _M_terminate_string ()
 
bool _M_inside (const _CharT *__s) const
 
void _M_range_initialize (const _CharT *__f, const _CharT *__l)
 
void _M_reserve (size_type)
 
_Self_M_append (const _CharT *__first, const _CharT *__last)
 
_Self_M_assign (const _CharT *__f, const _CharT *__l)
 
template<class _InputIter >
void _M_range_initialize (_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
 
template<class _ForwardIter >
void _M_range_initialize (_ForwardIter __f, _ForwardIter __l, const forward_iterator_tag &)
 
template<class _InputIter >
void _M_range_initializeT (_InputIter __f, _InputIter __l)
 
template<class _Integer >
void _M_initialize_dispatch (_Integer __n, _Integer __x, const __true_type &)
 
template<class _InputIter >
void _M_initialize_dispatch (_InputIter __f, _InputIter __l, const __false_type &)
 
template<class _InputIter >
_Self_M_appendT (_InputIter __first, _InputIter __last, const input_iterator_tag &)
 
template<class _ForwardIter >
_Self_M_appendT (_ForwardIter __first, _ForwardIter __last, const forward_iterator_tag &)
 
template<class _Integer >
_Self_M_append_dispatch (_Integer __n, _Integer __x, const __true_type &)
 
template<class _InputIter >
_Self_M_append_dispatch (_InputIter __f, _InputIter __l, const __false_type &)
 
template<class _Integer >
_Self_M_assign_dispatch (_Integer __n, _Integer __x, const __true_type &)
 
template<class _InputIter >
_Self_M_assign_dispatch (_InputIter __f, _InputIter __l, const __false_type &)
 
void _M_insert (iterator __p, const _CharT *__f, const _CharT *__l, bool __self_ref)
 
template<class _ForwardIter >
void _M_insert_overflow (iterator __pos, _ForwardIter __first, _ForwardIter __last, size_type __n)
 
template<class _InputIter >
void _M_insertT (iterator __p, _InputIter __first, _InputIter __last, const input_iterator_tag &)
 
template<class _ForwardIter >
void _M_insertT (iterator __pos, _ForwardIter __first, _ForwardIter __last, const forward_iterator_tag &)
 
template<class _Integer >
void _M_insert_dispatch (iterator __p, _Integer __n, _Integer __x, const __true_type &)
 
template<class _InputIter >
void _M_insert_dispatch (iterator __p, _InputIter __first, _InputIter __last, const __false_type &)
 
template<class _InputIterator >
void _M_copyT (_InputIterator __first, _InputIterator __last, pointer __result)
 
void _M_copyT (const _CharT *__f, const _CharT *__l, _CharT *__res)
 
_Self_M_replace (iterator __first, iterator __last, const _CharT *__f, const _CharT *__l, bool __self_ref)
 
template<class _Integer >
_Self_M_replace_dispatch (iterator __first, iterator __last, _Integer __n, _Integer __x, const __true_type &)
 
template<class _InputIter >
_Self_M_replace_dispatch (iterator __first, iterator __last, _InputIter __f, _InputIter __l, const __false_type &)
 
void _Invalidate_all ()
 
void _Compare_Capacity (size_type __old_capacity)
 
void _Invalidate_iterator (const iterator &__it)
 
void _Invalidate_iterators (const iterator &__f, const iterator &__l)
 
 basic_string (const _Base &__x)
 

Static Private Member Functions

static _CharT _STLP_CALL _M_null ()
 

Private Attributes

_STLP_PRIVATE __pad0__: typedef _STLP_PRIV _String_base<_CharT
 
_STLP_PRIVATE _Alloc _Base
 
_STLP_PRIVATE __pad2__: void _M_construct_null(_CharT* __p) const { _STLP_STD::_Construct(__p)
 
_Base _M_non_dbg_impl
 
_STLP_PRIV __owned_list _M_iter_list
 

Detailed Description

template<class _CharT, class _Traits, class _Alloc>
class basic_string< _CharT, _Traits, _Alloc >

Definition at line 121 of file _string.h.

Member Typedef Documentation

◆ _Base [1/2]

template<class _CharT , class _Traits , class _Alloc >
typedef _STLP_NO_MEM_T_STRING_BASE basic_string< _CharT, _Traits, _Alloc >::_Base
private

Definition at line 35 of file _string_workaround.h.

◆ _Base [2/2]

template<class _CharT , class _Traits , class _Alloc >
typedef _STLP_NON_DBG_STRING basic_string< _CharT, _Traits, _Alloc >::_Base
protected

Definition at line 54 of file _string.h.

◆ _CalledFromWorkaround_t

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::_CalledFromWorkaround_t basic_string< _CharT, _Traits, _Alloc >::_CalledFromWorkaround_t
private

Definition at line 36 of file _string_workaround.h.

◆ _Char_Is_POD

template<class _CharT , class _Traits , class _Alloc >
typedef _IsPOD<_CharT>::_Type basic_string< _CharT, _Traits, _Alloc >::_Char_Is_POD
protected

Definition at line 57 of file _string.h.

◆ _ConstructCheck

template<class _CharT , class _Traits , class _Alloc >
typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_STRING > basic_string< _CharT, _Traits, _Alloc >::_ConstructCheck
protected

Definition at line 56 of file _string.h.

◆ _Iterator_category [1/2]

template<class _CharT , class _Traits , class _Alloc >
typedef random_access_iterator_tag basic_string< _CharT, _Traits, _Alloc >::_Iterator_category

Definition at line 140 of file _string.h.

◆ _Iterator_category [2/2]

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::_Iterator_category basic_string< _CharT, _Traits, _Alloc >::_Iterator_category

Definition at line 41 of file _string_workaround.h.

◆ _Reserve_t [1/3]

template<class _CharT , class _Traits , class _Alloc >
typedef _STLP_PRIV _String_reserve_t basic_string< _CharT, _Traits, _Alloc >::_Reserve_t

Definition at line 149 of file _string.h.

◆ _Reserve_t [2/3]

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::_Reserve_t basic_string< _CharT, _Traits, _Alloc >::_Reserve_t

Definition at line 43 of file _string_workaround.h.

◆ _Reserve_t [3/3]

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::_Reserve_t basic_string< _CharT, _Traits, _Alloc >::_Reserve_t

Definition at line 67 of file _string.h.

◆ _Self [1/3]

template<class _CharT , class _Traits , class _Alloc >
typedef basic_string<_CharT, _Traits, _Alloc> basic_string< _CharT, _Traits, _Alloc >::_Self
private

Definition at line 128 of file _string.h.

◆ _Self [2/3]

template<class _CharT , class _Traits , class _Alloc >
typedef basic_string<_CharT, _Traits, _Alloc> basic_string< _CharT, _Traits, _Alloc >::_Self
private

Definition at line 34 of file _string_workaround.h.

◆ _Self [3/3]

template<class _CharT , class _Traits , class _Alloc >
typedef basic_string<_CharT, _Traits, _Alloc> basic_string< _CharT, _Traits, _Alloc >::_Self
protected

Definition at line 55 of file _string.h.

◆ allocator_type

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::allocator_type basic_string< _CharT, _Traits, _Alloc >::allocator_type

Definition at line 152 of file _string.h.

◆ const_iterator [1/2]

template<class _CharT , class _Traits , class _Alloc >
typedef const value_type* basic_string< _CharT, _Traits, _Alloc >::const_iterator

Definition at line 142 of file _string.h.

◆ const_iterator [2/2]

template<class _CharT , class _Traits , class _Alloc >
typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Const_traits<value_type> > > basic_string< _CharT, _Traits, _Alloc >::const_iterator

Definition at line 63 of file _string.h.

◆ const_pointer

template<class _CharT , class _Traits , class _Alloc >
typedef const value_type* basic_string< _CharT, _Traits, _Alloc >::const_pointer

Definition at line 135 of file _string.h.

◆ const_reference

template<class _CharT , class _Traits , class _Alloc >
typedef const value_type& basic_string< _CharT, _Traits, _Alloc >::const_reference

Definition at line 137 of file _string.h.

◆ difference_type

template<class _CharT , class _Traits , class _Alloc >
typedef ptrdiff_t basic_string< _CharT, _Traits, _Alloc >::difference_type

Definition at line 139 of file _string.h.

◆ iterator [1/2]

template<class _CharT , class _Traits , class _Alloc >
typedef value_type* basic_string< _CharT, _Traits, _Alloc >::iterator

Definition at line 143 of file _string.h.

◆ iterator [2/2]

template<class _CharT , class _Traits , class _Alloc >
typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Nonconst_traits<value_type> > > basic_string< _CharT, _Traits, _Alloc >::iterator

Definition at line 62 of file _string.h.

◆ pointer

template<class _CharT , class _Traits , class _Alloc >
typedef value_type* basic_string< _CharT, _Traits, _Alloc >::pointer

Definition at line 134 of file _string.h.

◆ reference

template<class _CharT , class _Traits , class _Alloc >
typedef value_type& basic_string< _CharT, _Traits, _Alloc >::reference

Definition at line 136 of file _string.h.

◆ size_type

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::size_type basic_string< _CharT, _Traits, _Alloc >::size_type

Definition at line 138 of file _string.h.

◆ traits_type [1/3]

template<class _CharT , class _Traits , class _Alloc >
typedef _Traits basic_string< _CharT, _Traits, _Alloc >::traits_type

Definition at line 132 of file _string.h.

◆ traits_type [2/3]

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::traits_type basic_string< _CharT, _Traits, _Alloc >::traits_type

Definition at line 42 of file _string_workaround.h.

◆ traits_type [3/3]

template<class _CharT , class _Traits , class _Alloc >
typedef _Base::traits_type basic_string< _CharT, _Traits, _Alloc >::traits_type

Definition at line 61 of file _string.h.

◆ value_type

template<class _CharT , class _Traits , class _Alloc >
typedef _CharT basic_string< _CharT, _Traits, _Alloc >::value_type

Definition at line 131 of file _string.h.

Constructor & Destructor Documentation

◆ basic_string() [1/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const allocator_type __a = allocator_type())
inlineexplicit

Definition at line 158 of file _string.h.

161 : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type(), _Base::_DEFAULT_SIZE)
163 explicit basic_string(const allocator_type& __a)
164#endif
165 : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, _Base::_DEFAULT_SIZE)
#define _STLP_PRIV
Definition: _dm.h:70
void _M_terminate_string()
Definition: _string.h:369
_Base::allocator_type allocator_type
Definition: _string.h:152

◆ basic_string() [2/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( _Reserve_t  ,
size_t  __n,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 169 of file _string.h.

175 basic_string(_Reserve_t, size_t __n, const allocator_type& __a)
176#endif
return __n
Definition: _algo.h:75
_STLP_PRIV _String_reserve_t _Reserve_t
Definition: _string.h:149

◆ basic_string() [3/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _Self __s)

Definition at line 647 of file _string.c.

648 : _STLP_PRIV _String_base<_CharT,_Alloc>(__s.get_allocator())
649{ _M_range_initialize(__s._M_Start(), __s._M_Finish()); }
void _M_range_initialize(_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
Definition: _string.h:313

◆ basic_string() [4/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _Self __s,
size_type  __pos,
size_type  __n = npos,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 183 of file _string.h.

188 if (__pos > __s.size())
189 this->_M_throw_out_of_range();
190 else
191 _M_range_initialize(__s._M_Start() + __pos, __s._M_Finish());
192 }
193 basic_string(const _Self& __s, size_type __pos, size_type __n)
195 if (__pos > __s.size())
196 this->_M_throw_out_of_range();
197 else
198 _M_range_initialize(__s._M_Start() + __pos,
199 __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
200 }
201 basic_string(const _Self& __s, size_type __pos, size_type __n,
202 const allocator_type& __a)
203#endif
205 if (__pos > __s.size())
206 this->_M_throw_out_of_range();
207 else
208 _M_range_initialize(__s._M_Start() + __pos,
209 __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
210 }
#define _Alloc
Definition: _bvector.h:330
_Base::size_type size_type
Definition: _string.h:138
basic_string< _CharT, _Traits, _Alloc > _Self
Definition: _string.h:128
#define min(a, b)
Definition: monoChain.cc:55

◆ basic_string() [5/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __s,
size_type  __n,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 213 of file _string.h.

219 _M_range_initialize(__s, __s + __n);
220 }
221 basic_string(const _CharT* __s, size_type __n, const allocator_type& __a)
222#endif
225 _M_range_initialize(__s, __s + __n);
226 }
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ basic_string() [6/29]

template<class _CharT , class _Traits , class _Alloc >
_STLP_MOVE_TO_STD_NAMESPACE basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __s,
const allocator_type __a = allocator_type() 
)

Definition at line 639 of file _string.c.

643 _M_range_initialize(__s, __s + traits_type::length(__s));
644}

◆ basic_string() [7/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( size_type  __n,
_CharT  __c,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 237 of file _string.h.

242 this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __c);
244 }
245 basic_string(size_type __n, _CharT __c, const allocator_type& __a)
246#endif
248 this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __c);
250 }
_ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)
#define __c
Definition: schilyio.h:209

◆ basic_string() [8/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( __move_source< _Self src)
inline

Definition at line 253 of file _string.h.

◆ basic_string() [9/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __f,
const _CharT *  __l,
const allocator_type &__a  _STLP_ALLOCATOR_TYPE_DFL 
)
inline

Definition at line 277 of file _string.h.

282 }
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:890
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:890

◆ basic_string() [10/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const allocator_type __a = allocator_type())
inlineexplicit

Definition at line 48 of file _string_workaround.h.

#define _STLP_NO_MEM_T_STRING_BASE

◆ basic_string() [11/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( _Reserve_t  __r,
size_t  __n,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 51 of file _string_workaround.h.

53 : _STLP_NO_MEM_T_STRING_BASE(__r, __n, __a) {}

◆ basic_string() [12/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _Self __s)
inline

Definition at line 55 of file _string_workaround.h.

◆ basic_string() [13/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _Self __s,
size_type  __pos,
size_type  __n = npos,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 58 of file _string_workaround.h.

60 : _STLP_NO_MEM_T_STRING_BASE(__s, __pos, __n, __a) {}

◆ basic_string() [14/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __s,
size_type  __n,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 62 of file _string_workaround.h.

64 : _STLP_NO_MEM_T_STRING_BASE(__s, __n, __a) {}

◆ basic_string() [15/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __s,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 66 of file _string_workaround.h.

68 : _STLP_NO_MEM_T_STRING_BASE(__s, __a) {}

◆ basic_string() [16/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( size_type  __n,
_CharT  __c,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 70 of file _string_workaround.h.

◆ basic_string() [17/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( __move_source< _Self src)
inline

Definition at line 75 of file _string_workaround.h.

◆ basic_string() [18/29]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIterator >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( _InputIterator  __f,
_InputIterator  __l,
const allocator_type &__a  _STLP_ALLOCATOR_TYPE_DFL 
)
inline

Definition at line 82 of file _string_workaround.h.

85 typedef typename _IsIntegral<_InputIterator>::_Ret _Integral;
86 _M_initialize_dispatch(__f, __l, _Integral());
87 }
void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type &)
Definition: _string.h:335
_Base::_CalledFromWorkaround_t _CalledFromWorkaround_t

◆ basic_string() [19/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const allocator_type __a = allocator_type())
inlineexplicit

Definition at line 90 of file _string.h.

_Base _M_non_dbg_impl
Definition: _string.h:70
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71

◆ basic_string() [20/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( _Reserve_t  __r,
size_t  __n,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 93 of file _string.h.

◆ basic_string() [21/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _Self __s)
inline

Definition at line 97 of file _string.h.

98 : _ConstructCheck(__s),
99 _M_non_dbg_impl(__s._M_non_dbg_impl), _M_iter_list(&_M_non_dbg_impl) {}
_STLP_PRIV __construct_checker< _STLP_NON_DBG_STRING > _ConstructCheck
Definition: _string.h:56

◆ basic_string() [22/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _Self __s,
size_type  __pos,
size_type  __n = npos,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 101 of file _string.h.

103 : _M_non_dbg_impl(__s._M_non_dbg_impl, __pos, __n, __a),

◆ basic_string() [23/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __s,
size_type  __n,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 106 of file _string.h.

◆ basic_string() [24/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __s,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 111 of file _string.h.

◆ basic_string() [25/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( size_type  __n,
_CharT  __c,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 116 of file _string.h.

◆ basic_string() [26/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( __move_source< _Self src)
inline

Definition at line 121 of file _string.h.

122 : _M_non_dbg_impl(__move_source<_Base >(src.get()._M_non_dbg_impl)),
124# if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
125 src.get()._M_iter_list._Invalidate_all();
126# else
127 src.get()._M_iter_list._Set_owner(_M_iter_list);
128# endif
129 }

◆ basic_string() [27/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _CharT *  __f,
const _CharT *  __l,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 133 of file _string.h.

◆ basic_string() [28/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const_iterator  __f,
const_iterator  __l,
const allocator_type __a = allocator_type() 
)
inline

Definition at line 138 of file _string.h.

141 _M_non_dbg_impl(__f._M_iterator, __l._M_iterator, __a), _M_iter_list(&_M_non_dbg_impl) {
142 }

◆ basic_string() [29/29]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::basic_string ( const _Base __x)
inlineprivate

Definition at line 161 of file _string.h.

Member Function Documentation

◆ _Compare_Capacity()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_Compare_Capacity ( size_type  __old_capacity)
inlineprivate

◆ _Invalidate_all()

◆ _Invalidate_iterator()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_Invalidate_iterator ( const iterator __it)
inlineprivate

Definition at line 80 of file _string.h.

81 { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); }
_STLP_MOVE_TO_PRIV_NAMESPACE const _InputIterator const input_iterator_tag &_InputIterator __it(__first)

Referenced by basic_string< _CharT, _Traits, _Alloc >::pop_back().

◆ _Invalidate_iterators()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_Invalidate_iterators ( const iterator __f,
const iterator __l 
)
inlineprivate

◆ _M_append()

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc > & basic_string< _CharT, _Traits, _Alloc >::_M_append ( const _CharT *  __first,
const _CharT *  __last 
)
private

Definition at line 196 of file _string.c.

196 {
197 if (__first != __last) {
199 if (__n >= this->_M_rest()) {
200 size_type __len = _M_compute_next_size(__n);
201 pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
202 pointer __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), this->_M_Finish(), __new_start);
203 __new_finish = _STLP_PRIV __ucopy(__first, __last, __new_finish);
204 _M_construct_null(__new_finish);
205 this->_M_deallocate_block();
206 this->_M_reset(__new_start, __new_finish, __new_start + __len);
207 }
208 else {
209 const _CharT* __f1 = __first;
210 ++__f1;
211 _STLP_PRIV __ucopy(__f1, __last, this->_M_finish + 1);
212 _M_construct_null(this->_M_finish + __n);
213 _Traits::assign(*end(), *__first);
214 this->_M_finish += __n;
215 }
216 }
217 return *this;
218}
_STLP_BEGIN_NAMESPACE _STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __ucopy(_InputIter __first, _InputIter __last, _OutputIter __result, _Distance *)
iterator end()
Definition: _string.h:386
size_type __len
Definition: _string.h:306
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
GLsizei const GLvoid * pointer
Definition: glext.h:5848

Referenced by basic_string< _CharT, _Traits, _Alloc >::append().

◆ _M_append_dispatch() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_append_dispatch ( _InputIter  __f,
_InputIter  __l,
const __false_type  
)
inlineprivate

Definition at line 244 of file _string_workaround.h.

245 { return _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); }
#define _STLP_ITERATOR_CATEGORY(_It, _Tp)
_Self & _M_appendT(_InputIter __first, _InputIter __last, const input_iterator_tag &)

◆ _M_append_dispatch() [2/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _Integer >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_append_dispatch ( _Integer  __n,
_Integer  __x,
const __true_type  
)
inlineprivate

Definition at line 240 of file _string_workaround.h.

241 { return append((size_type) __n, (_CharT) __x); }
_Self & append(const _CharT *__first, const _CharT *__last)
Definition: _string.h:509

Referenced by basic_string< _CharT, _Traits, _Alloc >::append().

◆ _M_appendT() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _ForwardIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_appendT ( _ForwardIter  __first,
_ForwardIter  __last,
const forward_iterator_tag  
)
inlineprivate

Definition at line 216 of file _string_workaround.h.

217 {
218 if (__first != __last) {
219 const size_type __n = __STATIC_CAST(size_type, _STLP_STD::distance(__first, __last));
220 if (__n >= this->_M_rest()) {
221 size_type __len = this->_M_compute_next_size(__n);
222 pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
223 pointer __new_finish = uninitialized_copy(this->_M_Start(), this->_M_Finish(), __new_start);
224 __new_finish = uninitialized_copy(__first, __last, __new_finish);
225 this->_M_construct_null(__new_finish);
226 this->_M_deallocate_block();
227 this->_M_reset(__new_start, __new_finish, __new_start + __len);
228 }
229 else {
230 _Traits::assign(*this->_M_finish, *__first++);
231 uninitialized_copy(__first, __last, this->_M_Finish() + 1);
232 this->_M_construct_null(this->_M_Finish() + __n);
233 this->_M_finish += __n;
234 }
235 }
236 return *this;
237 }
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)

◆ _M_appendT() [2/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_appendT ( _InputIter  __first,
_InputIter  __last,
const input_iterator_tag  
)
inlineprivate

◆ _M_assign()

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc > & basic_string< _CharT, _Traits, _Alloc >::_M_assign ( const _CharT *  __f,
const _CharT *  __l 
)
private

Definition at line 242 of file _string.c.

242 {
243 ptrdiff_t __n = __l - __f;
244 if (__STATIC_CAST(size_type, __n) <= size()) {
245 _Traits::copy(this->_M_Start(), __f, __n);
246 erase(begin() + __n, end());
247 }
248 else {
249 _Traits::copy(this->_M_Start(), __f, size());
250 _M_append(__f + size(), __l);
251 }
252 return *this;
253}
_Self & _M_append(const _CharT *__first, const _CharT *__last)
Definition: _string.c:196
_Self & erase(size_type __pos=0, size_type __n=npos)
Definition: _string.h:788
size_type size() const
Definition: _string.h:400
iterator begin()
Definition: _string.h:385
__kernel_ptrdiff_t ptrdiff_t
Definition: linux.h:247

Referenced by basic_string< _CharT, _Traits, _Alloc >::assign(), and basic_string< _CharT, _Traits, _Alloc >::operator=().

◆ _M_assign_dispatch() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_assign_dispatch ( _InputIter  __f,
_InputIter  __l,
const __false_type  
)
inlineprivate

Definition at line 283 of file _string_workaround.h.

283 {
284 pointer __cur = this->_M_Start();
285 while (__f != __l && __cur != this->_M_Finish()) {
286 _Traits::assign(*__cur, *__f);
287 ++__f;
288 ++__cur;
289 }
290 if (__f == __l)
291 _Base::erase(__cur, this->_M_Finish());
292 else
294 return *this;
295 }

◆ _M_assign_dispatch() [2/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _Integer >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_assign_dispatch ( _Integer  __n,
_Integer  __x,
const __true_type  
)
inlineprivate

Definition at line 279 of file _string_workaround.h.

280 { return assign((size_type) __n, (_CharT) __x); }
_Self & assign(const _Self &__s)
Definition: _string.h:548

Referenced by basic_string< _CharT, _Traits, _Alloc >::assign().

◆ _M_compare() [1/5]

template<class _CharT , class _Traits , class _Alloc >
static int _STLP_CALL basic_string< _CharT, _Traits, _Alloc >::_M_compare ( const _CharT *  __f1,
const _CharT *  __l1,
const _CharT *  __f2,
const _CharT *  __l2 
)
inlinestatic

Definition at line 1071 of file _string.h.

1072 {
1073 const ptrdiff_t __n1 = __l1 - __f1;
1074 const ptrdiff_t __n2 = __l2 - __f2;
1075 const int cmp = _Traits::compare(__f1, __f2, (min) (__n1, __n2));
1076 return cmp != 0 ? cmp : (__n1 < __n2 ? -1 : (__n1 > __n2 ? 1 : 0));
1077 }
#define cmp(status, error)
Definition: error.c:114

Referenced by basic_string< _CharT, _Traits, _Alloc >::compare().

◆ _M_compare() [2/5]

template<class _CharT , class _Traits , class _Alloc >
static int _STLP_CALL basic_string< _CharT, _Traits, _Alloc >::_M_compare ( const _CharT *  __f1,
const _CharT *  __l1,
const _CharT *  __f2,
const _CharT *  __l2 
)
inlinestatic

Definition at line 673 of file _string.h.

675 { return _Base::_M_compare(__f1, __l1, __f2, __l2); }

◆ _M_compare() [3/5]

template<class _CharT , class _Traits , class _Alloc >
static int _STLP_CALL basic_string< _CharT, _Traits, _Alloc >::_M_compare ( const _CharT *  __f1,
const _CharT *  __l1,
const_iterator  __f2,
const_iterator  __l2 
)
inlinestatic

Definition at line 679 of file _string.h.

681 { return _Base::_M_compare(__f1, __l1, __f2._M_iterator, __l2._M_iterator); }

◆ _M_compare() [4/5]

template<class _CharT , class _Traits , class _Alloc >
static int _STLP_CALL basic_string< _CharT, _Traits, _Alloc >::_M_compare ( const_iterator  __f1,
const_iterator  __l1,
const _CharT *  __f2,
const _CharT *  __l2 
)
inlinestatic

Definition at line 676 of file _string.h.

678 { return _Base::_M_compare(__f1._M_iterator, __l1._M_iterator, __f2, __l2); }

◆ _M_compare() [5/5]

template<class _CharT , class _Traits , class _Alloc >
static int _STLP_CALL basic_string< _CharT, _Traits, _Alloc >::_M_compare ( const_iterator  __f1,
const_iterator  __l1,
const_iterator  __f2,
const_iterator  __l2 
)
inlinestatic

Definition at line 682 of file _string.h.

684 { return _Base::_M_compare(__f1._M_iterator, __l1._M_iterator, __f2._M_iterator, __l2._M_iterator); }

◆ _M_copy()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_M_copy ( const _CharT *  __f,
const _CharT *  __l,
_CharT *  __res 
)
inline

Definition at line 675 of file _string.h.

675 {
678 _Traits::copy(__res, __f, __l - __f);
679 }

◆ _M_copyT() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIterator >
void basic_string< _CharT, _Traits, _Alloc >::_M_copyT ( _InputIterator  __first,
_InputIterator  __last,
pointer  __result 
)
inlineprivate

Definition at line 441 of file _string_workaround.h.

441 {
443 for ( ; __first != __last; ++__first, ++__result)
444 _Traits::assign(*__result, *__first);
445 }

Referenced by basic_string< _CharT, _Traits, _Alloc >::_M_insertT().

◆ _M_copyT() [2/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_M_copyT ( const _CharT *  __f,
const _CharT *  __l,
_CharT *  __res 
)
inlineprivate

Definition at line 448 of file _string_workaround.h.

448 {
450 _Base::_M_copy(__f, __l, __res);
451 }

◆ _M_initialize_dispatch() [1/4]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_initialize_dispatch ( _InputIter  __f,
_InputIter  __l,
const __false_type  
)
inline

Definition at line 342 of file _string.h.

342 {
344 }
void _M_range_initializeT(_InputIter __f, _InputIter __l)
Definition: _string.h:330

◆ _M_initialize_dispatch() [2/4]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_initialize_dispatch ( _InputIter  __f,
_InputIter  __l,
const __false_type  
)
inlineprivate

Definition at line 143 of file _string_workaround.h.

143 {
145 }

◆ _M_initialize_dispatch() [3/4]

template<class _CharT , class _Traits , class _Alloc >
template<class _Integer >
void basic_string< _CharT, _Traits, _Alloc >::_M_initialize_dispatch ( _Integer  __n,
_Integer  __x,
const __true_type  
)
inline

Definition at line 335 of file _string.h.

335 {
336 this->_M_allocate_block(__n + 1);
337 this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __x);
338 this->_M_terminate_string();
339 }

Referenced by basic_string< _CharT, _Traits, _Alloc >::basic_string().

◆ _M_initialize_dispatch() [4/4]

template<class _CharT , class _Traits , class _Alloc >
template<class _Integer >
void basic_string< _CharT, _Traits, _Alloc >::_M_initialize_dispatch ( _Integer  __n,
_Integer  __x,
const __true_type  
)
inlineprivate

Definition at line 136 of file _string_workaround.h.

136 {
137 this->_M_allocate_block(__n + 1);
138 this->_M_finish = uninitialized_fill_n(this->_M_Start(), __n, __x);
139 this->_M_terminate_string();
140 }
_STLP_MOVE_TO_STD_NAMESPACE void uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)

◆ _M_insert()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_M_insert ( iterator  __p,
const _CharT *  __f,
const _CharT *  __l,
bool  __self_ref 
)
inlineprivate

Definition at line 369 of file _string_workaround.h.

369 {
371 _Base::_M_insert(__p, __f, __l, __self_ref);
372 }
_STLP_PRIVATE const _CharT const _CharT bool __self_ref
Definition: _string.h:671

Referenced by basic_string< _CharT, _Traits, _Alloc >::insert().

◆ _M_insert_aux()

template<class _CharT , class _Traits , class _Alloc >
_CharT * basic_string< _CharT, _Traits, _Alloc >::_M_insert_aux ( pointer  ,
_CharT   
)

Definition at line 256 of file _string.c.

257 {
258 pointer __new_pos = __p;
259 if (this->_M_rest() > 1 ) {
260 _M_construct_null(this->_M_finish + 1);
261 _Traits::move(__p + 1, __p, this->_M_finish - __p);
262 _Traits::assign(*__p, __c);
263 ++this->_M_finish;
264 }
265 else {
266 size_type __len = _M_compute_next_size(1);
267 pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
268 __new_pos = _STLP_PRIV __ucopy(this->_M_Start(), __p, __new_start);
269 _Traits::assign(*__new_pos, __c);
270 pointer __new_finish = __new_pos + 1;
271 __new_finish = _STLP_PRIV __ucopy(__p, this->_M_finish, __new_finish);
272 _M_construct_null(__new_finish);
273 this->_M_deallocate_block();
274 this->_M_reset(__new_start, __new_finish, __new_start + __len);
275 }
276 return __new_pos;
277}

Referenced by basic_string< _CharT, _Traits, _Alloc >::insert().

◆ _M_insert_dispatch() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_insert_dispatch ( iterator  __p,
_InputIter  __first,
_InputIter  __last,
const __false_type  
)
inlineprivate

Definition at line 432 of file _string_workaround.h.

433 {
435 /* We are forced to do a temporary string to avoid the self referencing issue. */
436 const _Self __self(__first, __last, this->get_allocator());
437 _M_insertT(__p, __self.begin(), __self.end(), _STLP_ITERATOR_CATEGORY(__first, _InputIter));
438 }
void _M_insertT(iterator __p, _InputIter __first, _InputIter __last, const input_iterator_tag &)
allocator_type get_allocator() const
Definition: _string.h:154

◆ _M_insert_dispatch() [2/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _Integer >
void basic_string< _CharT, _Traits, _Alloc >::_M_insert_dispatch ( iterator  __p,
_Integer  __n,
_Integer  __x,
const __true_type  
)
inlineprivate

Definition at line 427 of file _string_workaround.h.

429 { insert(__p, (size_type) __n, (_CharT) __x); }
static int insert
Definition: xmllint.c:138

Referenced by basic_string< _CharT, _Traits, _Alloc >::insert().

◆ _M_insert_overflow()

template<class _CharT , class _Traits , class _Alloc >
template<class _ForwardIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_insert_overflow ( iterator  __pos,
_ForwardIter  __first,
_ForwardIter  __last,
size_type  __n 
)
inlineprivate

Definition at line 375 of file _string_workaround.h.

376 {
377 size_type __len = this->_M_compute_next_size(__n);
378 pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
379 pointer __new_finish = uninitialized_copy(this->_M_Start(), __pos, __new_start);
380 __new_finish = uninitialized_copy(__first, __last, __new_finish);
381 __new_finish = uninitialized_copy(__pos, this->_M_Finish(), __new_finish);
382 this->_M_construct_null(__new_finish);
383 this->_M_deallocate_block();
384 this->_M_reset(__new_start, __new_finish, __new_start + __len);
385 }

Referenced by basic_string< _CharT, _Traits, _Alloc >::_M_insertT().

◆ _M_insertT() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_insertT ( iterator  __p,
_InputIter  __first,
_InputIter  __last,
const input_iterator_tag  
)
inlineprivate

Definition at line 388 of file _string_workaround.h.

389 {
390 for ( ; __first != __last; ++__first) {
391 __p = insert(__p, *__first);
392 ++__p;
393 }
394 }

Referenced by basic_string< _CharT, _Traits, _Alloc >::_M_insert_dispatch().

◆ _M_insertT() [2/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _ForwardIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_insertT ( iterator  __pos,
_ForwardIter  __first,
_ForwardIter  __last,
const forward_iterator_tag  
)
inlineprivate

Definition at line 397 of file _string_workaround.h.

398 {
399 if (__first != __last) {
400 size_type __n = __STATIC_CAST(size_type, _STLP_STD::distance(__first, __last));
401 if (__n < this->_M_rest()) {
402 const size_type __elems_after = this->_M_finish - __pos;
403 if (__elems_after >= __n) {
404 uninitialized_copy((this->_M_Finish() - __n) + 1, this->_M_Finish() + 1, this->_M_Finish() + 1);
405 this->_M_finish += __n;
406 _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1);
407 _M_copyT(__first, __last, __pos);
408 }
409 else {
410 pointer __old_finish = this->_M_Finish();
411 _ForwardIter __mid = __first;
412 _STLP_STD::advance(__mid, __elems_after + 1);
413 _STLP_STD::uninitialized_copy(__mid, __last, this->_M_Finish() + 1);
414 this->_M_finish += __n - __elems_after;
415 uninitialized_copy(__pos, __old_finish + 1, this->_M_Finish());
416 this->_M_finish += __elems_after;
417 _M_copyT(__first, __mid, __pos);
418 }
419 }
420 else {
422 }
423 }
424 }
void _M_copyT(_InputIterator __first, _InputIterator __last, pointer __result)
void _M_insert_overflow(iterator __pos, _ForwardIter __first, _ForwardIter __last, size_type __n)

◆ _M_inside()

template<class _CharT , class _Traits , class _Alloc >
bool basic_string< _CharT, _Traits, _Alloc >::_M_inside ( const _CharT *  __s) const
inlineprivate

Definition at line 371 of file _string.h.

371 {
373 return (__s >= this->_M_Start()) && (__s < this->_M_Finish());
374 }

Referenced by basic_string< _CharT, _Traits, _Alloc >::insert(), and basic_string< _CharT, _Traits, _Alloc >::replace().

◆ _M_move()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_M_move ( const _CharT *  __f,
const _CharT *  __l,
_CharT *  __res 
)
inline

Definition at line 681 of file _string.h.

681 {
683 _Traits::move(__res, __f, __l - __f);
684 }

◆ _M_null()

template<class _CharT , class _Traits , class _Alloc >
static _CharT _STLP_CALL basic_string< _CharT, _Traits, _Alloc >::_M_null ( )
inlinestaticprivate

◆ _M_range_initialize() [1/5]

template<class _CharT , class _Traits , class _Alloc >
template<class _ForwardIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_range_initialize ( _ForwardIter  __f,
_ForwardIter  __l,
const forward_iterator_tag  
)
inline

Definition at line 321 of file _string.h.

322 {
323 difference_type __n = _STLP_STD::distance(__f, __l);
324 this->_M_allocate_block(__n + 1);
325 this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start());
326 this->_M_terminate_string();
327 }
ptrdiff_t difference_type
Definition: _string.h:139

◆ _M_range_initialize() [2/5]

template<class _CharT , class _Traits , class _Alloc >
template<class _ForwardIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_range_initialize ( _ForwardIter  __f,
_ForwardIter  __l,
const forward_iterator_tag  
)
inlineprivate

Definition at line 122 of file _string_workaround.h.

123 {
124 difference_type __n = _STLP_STD::distance(__f, __l);
125 this->_M_allocate_block(__n + 1);
126 this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start());
127 this->_M_terminate_string();
128 }

◆ _M_range_initialize() [3/5]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_range_initialize ( _InputIter  __f,
_InputIter  __l,
const input_iterator_tag __tag 
)
inline

Definition at line 313 of file _string.h.

314 {
315 this->_M_allocate_block();
316 _M_construct_null(this->_M_Finish());
317 _M_appendT(__f, __l, __tag);
318 }

Referenced by basic_string< _CharT, _Traits, _Alloc >::_M_range_initializeT(), and basic_string< _CharT, _Traits, _Alloc >::basic_string().

◆ _M_range_initialize() [4/5]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_range_initialize ( _InputIter  __f,
_InputIter  __l,
const input_iterator_tag __tag 
)
inlineprivate

Definition at line 114 of file _string_workaround.h.

115 {
116 this->_M_allocate_block();
117 this->_M_construct_null(this->_M_Finish());
118 _M_appendT(__f, __l, __tag);
119 }

◆ _M_range_initialize() [5/5]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_M_range_initialize ( const _CharT *  __f,
const _CharT *  __l 
)
inlineprivate

Definition at line 376 of file _string.h.

376 {
378 ptrdiff_t __n = __l - __f;
379 this->_M_allocate_block(__n + 1);
380 this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start());
382 }

◆ _M_range_initializeT() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_range_initializeT ( _InputIter  __f,
_InputIter  __l 
)
inline

◆ _M_range_initializeT() [2/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::_M_range_initializeT ( _InputIter  __f,
_InputIter  __l 
)
inlineprivate

Definition at line 131 of file _string_workaround.h.

131 {
133 }

◆ _M_replace()

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc > & basic_string< _CharT, _Traits, _Alloc >::_M_replace ( iterator  __first,
iterator  __last,
const _CharT *  __f,
const _CharT *  __l,
bool  __self_ref 
)
inlineprivate

◆ _M_replace_dispatch() [1/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_replace_dispatch ( iterator  __first,
iterator  __last,
_InputIter  __f,
_InputIter  __l,
const __false_type  
)
inlineprivate

Definition at line 567 of file _string_workaround.h.

568 {
570 /* We are forced to do a temporary string to avoid the self referencing issue. */
571 const _Self __self(__f, __l, this->get_allocator());
572 return _M_replace(__first, __last, __self._M_Start(), __self._M_Finish(), false);
573 }
_Self & _M_replace(iterator __first, iterator __last, const _CharT *__f, const _CharT *__l, bool __self_ref)

◆ _M_replace_dispatch() [2/2]

template<class _CharT , class _Traits , class _Alloc >
template<class _Integer >
_Self & basic_string< _CharT, _Traits, _Alloc >::_M_replace_dispatch ( iterator  __first,
iterator  __last,
_Integer  __n,
_Integer  __x,
const __true_type  
)
inlineprivate

Definition at line 560 of file _string_workaround.h.

561 {
563 return replace(__first, __last, (size_type) __n, (_CharT) __x);
564 }
_Self & replace(size_type __pos, size_type __n, const _Self &__s)
Definition: _string.h:813

Referenced by basic_string< _CharT, _Traits, _Alloc >::replace().

◆ _M_reserve()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_M_reserve ( size_type  __n)
private

Definition at line 170 of file _string.c.

170 {
171 pointer __new_start = this->_M_start_of_storage.allocate(__n, __n);
172 pointer __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), this->_M_Finish(), __new_start);
173 _M_construct_null(__new_finish);
174 this->_M_deallocate_block();
175 this->_M_reset(__new_start, __new_finish, __new_start + __n);
176}

Referenced by basic_string< _CharT, _Traits, _Alloc >::push_back().

◆ _M_terminate_string()

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::_M_terminate_string ( )
inlineprivate

◆ append() [1/20]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( _InputIter  __first,
_InputIter  __last 
)
inline

Definition at line 191 of file _string_workaround.h.

191 {
192 typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
193 return _M_append_dispatch(__first, __last, _Integral());
194 }
_Self & _M_append_dispatch(_Integer __n, _Integer __x, const __true_type &)

◆ append() [2/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 198 of file _string_workaround.h.

198 {
200 _Base::append(__f, __l);
201 return *this;
202 }

◆ append() [3/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 255 of file _string.h.

255 {
257 _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l))
258 size_type __old_capacity = capacity();
259 _M_non_dbg_impl.append(__f, __l);
260 _Compare_Capacity(__old_capacity);
261 return *this;
262 }
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75

◆ append() [4/20]

◆ append() [5/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __s)
inline

Definition at line 529 of file _string.h.

530 { _STLP_FIX_LITERAL_BUG(__s) return _M_append(__s, __s + traits_type::length(__s)); }

◆ append() [6/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __s)
inline

Definition at line 178 of file _string_workaround.h.

178 {
180 _Base::append(__s);
181 return *this;
182 }

◆ append() [7/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __s)
inline

Definition at line 296 of file _string.h.

296 {
298 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
299 size_type __old_capacity = capacity();
300 _M_non_dbg_impl.append(__s);
301 _Compare_Capacity(__old_capacity);
302 return *this;
303 }
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ append() [8/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 527 of file _string.h.

528 { _STLP_FIX_LITERAL_BUG(__s) return _M_append(__s, __s+__n); }

◆ append() [9/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 173 of file _string_workaround.h.

173 {
175 _Base::append(__s, __n);
176 return *this;
177 }

◆ append() [10/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 287 of file _string.h.

287 {
289 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
290 size_type __old_capacity = capacity();
291 _M_non_dbg_impl.append(__s, __n);
292 _Compare_Capacity(__old_capacity);
293 return *this;
294 }

◆ append() [11/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _Self __s)
inline

Definition at line 516 of file _string.h.

517 { return _M_append(__s._M_Start(), __s._M_Finish()); }

◆ append() [12/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _Self __s)
inline

Definition at line 162 of file _string_workaround.h.

162 {
163 _Base::append(__s);
164 return *this;
165 }

◆ append() [13/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _Self __s)
inline

Definition at line 273 of file _string.h.

273 {
274 size_type __old_capacity = capacity();
275 _M_non_dbg_impl.append(__s._M_non_dbg_impl);
276 _Compare_Capacity(__old_capacity);
277 return *this;
278 }

◆ append() [14/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _Self __s,
size_type  __pos,
size_type  __n 
)
inline

Definition at line 519 of file _string.h.

520 {
521 if (__pos > __s.size())
522 this->_M_throw_out_of_range();
523 return _M_append(__s._M_Start() + __pos,
524 __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
525 }

◆ append() [15/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _Self __s,
size_type  __pos,
size_type  __n 
)
inline

Definition at line 167 of file _string_workaround.h.

168 {
169 _Base::append(__s, __pos, __n);
170 return *this;
171 }

◆ append() [16/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const _Self __s,
size_type  __pos,
size_type  __n 
)
inline

Definition at line 280 of file _string.h.

280 {
281 size_type __old_capacity = capacity();
282 _M_non_dbg_impl.append(__s._M_non_dbg_impl, __pos, __n);
283 _Compare_Capacity(__old_capacity);
284 return *this;
285 }

◆ append() [17/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( const_iterator  __f,
const_iterator  __l 
)
inline

Definition at line 264 of file _string.h.

264 {
265 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l))
266 size_type __old_capacity = capacity();
267 _M_non_dbg_impl.append(__f._M_iterator, __l._M_iterator);
268 _Compare_Capacity(__old_capacity);
269 return *this;
270 }

◆ append() [18/20]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc > & basic_string< _CharT, _Traits, _Alloc >::append ( size_type  __n,
_CharT  __c 
)

Definition at line 180 of file _string.c.

180 {
181 if (__n > 0) {
182 if (__n > max_size() - size())
183 this->_M_throw_length_error();
184 if (__n >= this->_M_rest())
185 _M_reserve(_M_compute_next_size(__n));
186 _STLP_PRIV __uninitialized_fill_n(this->_M_finish + 1, __n - 1, __c);
187 _M_construct_null(this->_M_finish + __n);
188 _Traits::assign(*end(), __c);
189 this->_M_finish += __n;
190 }
191 return *this;
192}
void _M_reserve(size_type)
Definition: _string.c:170
size_type max_size() const
Definition: _string.h:402

◆ append() [19/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( size_type  __n,
_CharT  __c 
)
inline

Definition at line 183 of file _string_workaround.h.

183 {
184 _Base::append(__n, __c);
185 return *this;
186 }

◆ append() [20/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::append ( size_type  __n,
_CharT  __c 
)
inline

Definition at line 305 of file _string.h.

305 {
306 size_type __old_capacity = this->capacity();
307 _M_non_dbg_impl.append(__n, __c);
308 _Compare_Capacity(__old_capacity);
309 return *this;
310 }

◆ assign() [1/20]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( _InputIter  __first,
_InputIter  __last 
)
inline

Definition at line 301 of file _string_workaround.h.

301 {
302 typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
303 return _M_assign_dispatch(__first, __last, _Integral());
304 }
_Self & _M_assign_dispatch(_Integer __n, _Integer __x, const __true_type &)

◆ assign() [2/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 601 of file _string.h.

601 {
603 return _M_assign(__f, __l);
604 }
_Self & _M_assign(const _CharT *__f, const _CharT *__l)
Definition: _string.c:242

◆ assign() [3/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 311 of file _string_workaround.h.

311 {
313 _Base::assign(__f, __l);
314 return *this;
315 }

◆ assign() [4/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 373 of file _string.h.

373 {
375 _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l))
377 _M_non_dbg_impl.assign(__f, __l);
378 return *this;
379 }

◆ assign() [5/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __s)
inline

Definition at line 562 of file _string.h.

563 { _STLP_FIX_LITERAL_BUG(__s) return _M_assign(__s, __s + _Traits::length(__s)); }

◆ assign() [6/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __s)
inline

Definition at line 265 of file _string_workaround.h.

265 {
267 _Base::assign(__s);
268 return *this;
269 }

◆ assign() [7/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __s)
inline

Definition at line 346 of file _string.h.

346 {
348 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
350 _M_non_dbg_impl.assign(__s);
351 return *this;
352 }

◆ assign() [8/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 559 of file _string.h.

560 { _STLP_FIX_LITERAL_BUG(__s) return _M_assign(__s, __s + __n); }

◆ assign() [9/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 259 of file _string_workaround.h.

259 {
261 _Base::assign(__s, __n);
262 return *this;
263 }

◆ assign() [10/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 338 of file _string.h.

338 {
340 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
342 _M_non_dbg_impl.assign(__s, __s + __n);
343 return *this;
344 }

◆ assign() [11/20]

◆ assign() [12/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _Self __s)
inline

Definition at line 248 of file _string_workaround.h.

248 {
249 _Base::assign(__s);
250 return *this;
251 }

◆ assign() [13/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _Self __s)
inline

Definition at line 324 of file _string.h.

324 {
326 _M_non_dbg_impl.assign(__s._M_non_dbg_impl);
327 return *this;
328 }

◆ assign() [14/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _Self __s,
size_type  __pos,
size_type  __n 
)
inline

Definition at line 551 of file _string.h.

552 {
553 if (__pos > __s.size())
554 this->_M_throw_out_of_range();
555 return _M_assign(__s._M_Start() + __pos,
556 __s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
557 }

◆ assign() [15/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _Self __s,
size_type  __pos,
size_type  __n 
)
inline

Definition at line 253 of file _string_workaround.h.

254 {
255 _Base::assign(__s, __pos, __n);
256 return *this;
257 }

◆ assign() [16/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const _Self __s,
size_type  __pos,
size_type  __n 
)
inline

Definition at line 330 of file _string.h.

330 {
331 if (__pos < __s.size()) {
333 }
334 _M_non_dbg_impl.assign(__s._M_non_dbg_impl, __pos, __n);
335 return *this;
336 }

◆ assign() [17/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( const_iterator  __f,
const_iterator  __l 
)
inline

Definition at line 380 of file _string.h.

380 {
381 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l))
383 _M_non_dbg_impl.assign(__f._M_iterator, __l._M_iterator);
384 return *this;
385 }

◆ assign() [18/20]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc > & basic_string< _CharT, _Traits, _Alloc >::assign ( size_type  __n,
_CharT  __c 
)

Definition at line 222 of file _string.c.

222 {
223 if (__n <= size()) {
224 _Traits::assign(this->_M_Start(), __n, __c);
225 erase(begin() + __n, end());
226 }
227 else {
228 if (__n < capacity()) {
229 _Traits::assign(this->_M_Start(), size(), __c);
230 append(__n - size(), __c);
231 }
232 else {
233 _Self __str(__n, __c);
234 this->swap(__str);
235 }
236 }
237 return *this;
238}
#define swap(a, b)
Definition: qsort.c:63

◆ assign() [19/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( size_type  __n,
_CharT  __c 
)
inline

Definition at line 271 of file _string_workaround.h.

271 {
272 _Base::assign(__n, __c);
273 return *this;
274 }

◆ assign() [20/20]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::assign ( size_type  __n,
_CharT  __c 
)
inline

Definition at line 354 of file _string.h.

354 {
356 _M_non_dbg_impl.assign(__n, __c);
357 return *this;
358 }

◆ at() [1/4]

template<class _CharT , class _Traits , class _Alloc >
reference basic_string< _CharT, _Traits, _Alloc >::at ( size_type  __n)
inline

Definition at line 443 of file _string.h.

443 {
444 if (__n >= size())
445 this->_M_throw_out_of_range();
446 return *(this->_M_Start() + __n);
447 }

◆ at() [2/4]

template<class _CharT , class _Traits , class _Alloc >
reference basic_string< _CharT, _Traits, _Alloc >::at ( size_type  __n)
inline

Definition at line 231 of file _string.h.

231{ return _M_non_dbg_impl.at(__n); }

◆ at() [3/4]

template<class _CharT , class _Traits , class _Alloc >
const_reference basic_string< _CharT, _Traits, _Alloc >::at ( size_type  __n) const
inline

Definition at line 437 of file _string.h.

437 {
438 if (__n >= size())
439 this->_M_throw_out_of_range();
440 return *(this->_M_Start() + __n);
441 }

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::at().

◆ at() [4/4]

template<class _CharT , class _Traits , class _Alloc >
const_reference basic_string< _CharT, _Traits, _Alloc >::at ( size_type  __n) const
inline

Definition at line 230 of file _string.h.

230{ return _M_non_dbg_impl.at(__n); }

◆ begin() [1/4]

◆ begin() [2/4]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::begin ( )
inline

Definition at line 183 of file _string.h.

183{ return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); }
value_type * iterator
Definition: _string.h:143

◆ begin() [3/4]

template<class _CharT , class _Traits , class _Alloc >
const_iterator basic_string< _CharT, _Traits, _Alloc >::begin ( ) const
inline

Definition at line 387 of file _string.h.

387{ return this->_M_Start(); }

◆ begin() [4/4]

template<class _CharT , class _Traits , class _Alloc >
const_iterator basic_string< _CharT, _Traits, _Alloc >::begin ( ) const
inline

Definition at line 184 of file _string.h.

184{ return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); }
const value_type * const_iterator
Definition: _string.h:142

◆ c_str() [1/2]

◆ c_str() [2/2]

template<class _CharT , class _Traits , class _Alloc >
const _CharT * basic_string< _CharT, _Traits, _Alloc >::c_str ( ) const
inline

Definition at line 686 of file _string.h.

686{ return _M_non_dbg_impl.c_str(); }

◆ capacity() [1/2]

◆ capacity() [2/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::capacity ( ) const
inline

Definition at line 206 of file _string.h.

206{ return _M_non_dbg_impl.capacity(); }

◆ clear() [1/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::clear ( )
inline

Definition at line 421 of file _string.h.

421 {
422 if (!empty()) {
423 _Traits::assign(*(this->_M_Start()), _M_null());
424 this->_M_finish = this->_M_Start();
425 }
426 }
static _CharT _STLP_CALL _M_null()
Definition: _string.h:362
bool empty() const
Definition: _string.h:428

Referenced by getline(), operator>>(), and StringOut().

◆ clear() [2/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::clear ( )
inline

Definition at line 213 of file _string.h.

213 {
215 _M_non_dbg_impl.clear();
216 }

◆ compare() [1/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( const _CharT *  __s) const
inline

Definition at line 1047 of file _string.h.

1047 {
1049 return _M_compare(this->_M_Start(), this->_M_Finish(), __s, __s + _Traits::length(__s));
1050 }
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
Definition: _string.h:1071

◆ compare() [2/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( const _CharT *  __s) const
inline

Definition at line 658 of file _string.h.

658 {
660 return _M_non_dbg_impl.compare(__s);
661 }

◆ compare() [3/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( const _Self __s) const
inline

Definition at line 1026 of file _string.h.

1027 { return _M_compare(this->_M_Start(), this->_M_Finish(), __s._M_Start(), __s._M_Finish()); }

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::compare().

◆ compare() [4/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( const _Self __s) const
inline

Definition at line 651 of file _string.h.

652 { return _M_non_dbg_impl.compare(__s._M_non_dbg_impl); }

◆ compare() [5/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos,
size_type  __n,
const _CharT *  __s 
) const
inline

Definition at line 662 of file _string.h.

662 {
664 return _M_non_dbg_impl.compare(__pos, __n, __s);
665 }

◆ compare() [6/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos,
size_type  __n,
const _Self __s 
) const
inline

Definition at line 653 of file _string.h.

654 { return _M_non_dbg_impl.compare(__pos, __n, __s._M_non_dbg_impl); }

◆ compare() [7/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos1,
size_type  __n1,
const _CharT *  __s 
) const
inline

Definition at line 1052 of file _string.h.

1052 {
1054 if (__pos1 > size())
1055 this->_M_throw_out_of_range();
1056 return _M_compare(this->_M_Start() + __pos1,
1057 this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
1058 __s, __s + _Traits::length(__s));
1059 }

◆ compare() [8/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos1,
size_type  __n1,
const _CharT *  __s,
size_type  __n2 
) const
inline

Definition at line 1061 of file _string.h.

1061 {
1063 if (__pos1 > size())
1064 this->_M_throw_out_of_range();
1065 return _M_compare(this->_M_Start() + __pos1,
1066 this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
1067 __s, __s + __n2);
1068 }

◆ compare() [9/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos1,
size_type  __n1,
const _CharT *  __s,
size_type  __n2 
) const
inline

Definition at line 666 of file _string.h.

667 {
669 return _M_non_dbg_impl.compare(__pos1, __n1, __s, __n2);
670 }

◆ compare() [10/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos1,
size_type  __n1,
const _Self __s 
) const
inline

Definition at line 1029 of file _string.h.

1029 {
1030 if (__pos1 > size())
1031 this->_M_throw_out_of_range();
1032 return _M_compare(this->_M_Start() + __pos1,
1033 this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
1034 __s._M_Start(), __s._M_Finish());
1035 }

◆ compare() [11/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos1,
size_type  __n1,
const _Self __s,
size_type  __pos2,
size_type  __n2 
) const
inline

Definition at line 1037 of file _string.h.

1038 {
1039 if (__pos1 > size() || __pos2 > __s.size())
1040 this->_M_throw_out_of_range();
1041 return _M_compare(this->_M_Start() + __pos1,
1042 this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
1043 __s._M_Start() + __pos2,
1044 __s._M_Start() + __pos2 + (min) (__n2, __s.size() - __pos2));
1045 }

◆ compare() [12/12]

template<class _CharT , class _Traits , class _Alloc >
int basic_string< _CharT, _Traits, _Alloc >::compare ( size_type  __pos1,
size_type  __n1,
const _Self __s,
size_type  __pos2,
size_type  __n2 
) const
inline

Definition at line 655 of file _string.h.

657 { return _M_non_dbg_impl.compare(__pos1, __n1, __s._M_non_dbg_impl, __pos2, __n2); }

◆ copy() [1/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::copy ( _CharT *  __s,
size_type  __n,
size_type  __pos = 0 
) const
inline

Definition at line 933 of file _string.h.

933 {
935 if (__pos > size())
936 this->_M_throw_out_of_range();
937 const size_type __len = (min) (__n, size() - __pos);
938 _Traits::copy(__s, this->_M_Start() + __pos, __len);
939 return __len;
940 }

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::copy().

◆ copy() [2/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::copy ( _CharT *  __s,
size_type  __n,
size_type  __pos = 0 
) const
inline

Definition at line 689 of file _string.h.

690 { return _M_non_dbg_impl.copy(__s, __n, __pos); }

◆ data() [1/2]

◆ data() [2/2]

template<class _CharT , class _Traits , class _Alloc >
const _CharT * basic_string< _CharT, _Traits, _Alloc >::data ( ) const
inline

Definition at line 687 of file _string.h.

687{ return _M_non_dbg_impl.data(); }

◆ empty() [1/2]

template<class _CharT , class _Traits , class _Alloc >
bool basic_string< _CharT, _Traits, _Alloc >::empty ( ) const
inline

Definition at line 428 of file _string.h.

428{ return this->_M_Start() == this->_M_Finish(); }

Referenced by __get_integer(), __get_monetary_value(), __money_do_get(), __money_do_put(), __put_float(), __read_float(), basic_string< _CharT, _Traits, _Alloc >::clear(), and operator>>().

◆ empty() [2/2]

template<class _CharT , class _Traits , class _Alloc >
bool basic_string< _CharT, _Traits, _Alloc >::empty ( ) const
inline

Definition at line 218 of file _string.h.

218{ return _M_non_dbg_impl.empty(); }

◆ end() [1/4]

◆ end() [2/4]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::end ( )
inline

Definition at line 185 of file _string.h.

185{ return iterator(&_M_iter_list, _M_non_dbg_impl.end()); }

◆ end() [3/4]

template<class _CharT , class _Traits , class _Alloc >
const_iterator basic_string< _CharT, _Traits, _Alloc >::end ( ) const
inline

Definition at line 388 of file _string.h.

388{ return this->_M_Finish(); }

◆ end() [4/4]

template<class _CharT , class _Traits , class _Alloc >
const_iterator basic_string< _CharT, _Traits, _Alloc >::end ( ) const
inline

Definition at line 186 of file _string.h.

◆ erase() [1/9]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::erase ( iterator  __f,
iterator  __l 
)
inline

Definition at line 504 of file _string.h.

504 {
505 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end()))
507 return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__f._M_iterator, __l._M_iterator));
508 }
return
Definition: dirsup.c:529
void _Invalidate_iterators(const iterator &__f, const iterator &__l)
Definition: _string.h:82
GLuint GLuint end
Definition: gl.h:1545

◆ erase() [2/9]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::erase ( iterator  __first,
iterator  __last 
)
inline

Definition at line 802 of file _string.h.

802 {
803 if (__first != __last) {
804 // The move includes the terminating _CharT().
805 traits_type::move(__first, __last, (this->_M_Finish() - __last) + 1);
806 this->_M_finish = this->_M_Finish() - (__last - __first);
807 }
808 return __first;
809 }

◆ erase() [3/9]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::erase ( iterator  __first,
iterator  __last 
)
inline

Definition at line 465 of file _string_workaround.h.

465 {
467 return _Base::erase(__first, __last);
468 }

◆ erase() [4/9]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::erase ( iterator  __pos)
inline

Definition at line 795 of file _string.h.

795 {
796 // The move includes the terminating _CharT().
797 _Traits::move(__pos, __pos + 1, this->_M_Finish() - __pos);
798 --this->_M_finish;
799 return __pos;
800 }

◆ erase() [5/9]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::erase ( iterator  __pos)
inline

Definition at line 460 of file _string_workaround.h.

460 {
462 return _Base::erase(__pos);
463 }

◆ erase() [6/9]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::erase ( iterator  __pos)
inline

Definition at line 498 of file _string.h.

498 {
500 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos))
501 _Invalidate_iterators(__pos, end());
502 return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator));
503 }
bool _Dereferenceable(const _Iterator &__it)
Definition: _iterator.h:93

◆ erase() [7/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::erase ( size_type  __pos = 0,
size_type  __n = npos 
)
inline

Definition at line 788 of file _string.h.

788 {
789 if (__pos > size())
790 this->_M_throw_out_of_range();
791 erase(begin() + __pos, begin() + __pos + (min) (__n, size() - __pos));
792 return *this;
793 }

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::erase(), basic_string< _CharT, _Traits, _Alloc >::erase(), TMapLoader::Load(), and basic_string< _CharT, _Traits, _Alloc >::resize().

◆ erase() [8/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::erase ( size_type  __pos = 0,
size_type  __n = npos 
)
inline

Definition at line 455 of file _string_workaround.h.

455 {
456 _Base::erase(__pos, __n);
457 return *this;
458 }

◆ erase() [9/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::erase ( size_type  __pos = 0,
size_type  __n = npos 
)
inline

Definition at line 491 of file _string.h.

491 {
492 if (__pos < size()) {
493 _Invalidate_iterators(begin() + __pos, end());
494 }
495 _M_non_dbg_impl.erase(__pos, __n);
496 return *this;
497 }

◆ find() [1/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( _CharT  __c) const
inline

Definition at line 962 of file _string.h.

962{ return find(__c, 0); }
static TAGID TAGID find
Definition: db.cpp:155

Referenced by basic_string< _CharT, _Traits, _Alloc >::find().

◆ find() [2/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( _CharT  __c) const
inline

Definition at line 706 of file _string.h.

706{ return find(__c, 0); }

Referenced by basic_string< _CharT, _Traits, _Alloc >::find().

◆ find() [3/10]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find ( _CharT  __c,
size_type  __pos 
) const

Definition at line 438 of file _string.c.

439{
440 if (__pos >= size()) { /*__pos + 1 > size()*/
441 return npos;
442 }
443
444 const_pointer __result =
445 _STLP_STD::find_if(this->_M_Start() + __pos, this->_M_Finish(),
447 return __result != this->_M_Finish() ? __result - this->_M_Start() : npos;
448}
static const size_t npos
Definition: _string_npos.h:26
const value_type * const_pointer
Definition: _string.h:135

◆ find() [4/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( _CharT  __c,
size_type  __pos 
) const
inline

Definition at line 707 of file _string.h.

708 { return _M_non_dbg_impl.find(__c, __pos); }

◆ find() [5/10]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const

Definition at line 420 of file _string.c.

422{
423 const size_t __len = size();
424 if (__pos >= __len || __pos + __n > __len) {
425 if ( __n == 0 && __pos <= __len ) { // marginal case
426 return __pos;
427 }
428 return npos;
429 }
430
431 const_pointer __result =
432 _STLP_STD::search(this->_M_Start() + __pos, this->_M_Finish(),
433 __s, __s + __n, _STLP_PRIV _Eq_traits<_Traits>());
434 return __result != this->_M_Finish() ? __result - this->_M_Start() : npos;
435}

◆ find() [6/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const
inline

Definition at line 700 of file _string.h.

700 {
702 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
703 return _M_non_dbg_impl.find(__s, __pos, __n);
704 }

◆ find() [7/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( const _CharT *  __s,
size_type  __pos = 0 
) const
inline

Definition at line 956 of file _string.h.

957 { _STLP_FIX_LITERAL_BUG(__s) return find(__s, __pos, _Traits::length(__s)); }

◆ find() [8/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( const _CharT *  __s,
size_type  __pos = 0 
) const
inline

Definition at line 695 of file _string.h.

695 {
697 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
698 return _M_non_dbg_impl.find(__s, __pos);
699 }

◆ find() [9/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( const _Self __s,
size_type  __pos = 0 
) const
inline

◆ find() [10/10]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find ( const _Self __s,
size_type  __pos = 0 
) const
inline

Definition at line 693 of file _string.h.

694 { return _M_non_dbg_impl.find(__s._M_non_dbg_impl, __pos); }

◆ find_first_not_of() [1/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( _CharT  __c,
size_type  __pos = 0 
) const

Definition at line 528 of file _string.c.

528 {
529 if (1 > size())
530 return npos;
531 else {
532 const_pointer __result = _STLP_STD::find_if(this->_M_Start() + __pos, this->_M_Finish(),
534 return __result != this->_M_finish ? __result - this->_M_Start() : npos;
535 }
536}

◆ find_first_not_of() [2/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( _CharT  __c,
size_type  __pos = 0 
) const
inline

Definition at line 771 of file _string.h.

772 { return _M_non_dbg_impl.find_first_not_of(__c, __pos); }

◆ find_first_not_of() [3/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const

Definition at line 513 of file _string.c.

514 {
515 typedef typename _Traits::char_type _CharType;
516 if (__pos >= size()) /*__pos + 1 >= size()*/
517 return npos;
518 else {
519 const_pointer __result = _STLP_PRIV __str_find_first_not_of(this->_M_Start() + __pos, this->_M_Finish(),
520 __STATIC_CAST(const _CharType*, __s),
521 __STATIC_CAST(const _CharType*, __s) + __n,
522 __STATIC_CAST(_Traits*, 0));
523 return __result != this->_M_finish ? __result - this->_M_Start() : npos;
524 }
525}
_InputIter __str_find_first_not_of(_InputIter __first1, _InputIter __last1, const _CharT *__first2, const _CharT *__last2, _Traits *__traits)
Definition: _string.c:134

◆ find_first_not_of() [4/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const
inline

Definition at line 766 of file _string.h.

766 {
768 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
769 return _M_non_dbg_impl.find_first_not_of(__s, __pos, __n);
770 }

◆ find_first_not_of() [5/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( const _CharT *  __s,
size_type  __pos = 0 
) const
inline

Definition at line 1003 of file _string.h.

1004 { _STLP_FIX_LITERAL_BUG(__s) return find_first_not_of(__s, __pos, _Traits::length(__s)); }
size_type find_first_not_of(const _Self &__s, size_type __pos=0) const
Definition: _string.h:1000

◆ find_first_not_of() [6/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( const _CharT *  __s,
size_type  __pos = 0 
) const
inline

Definition at line 761 of file _string.h.

761 {
763 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
764 return _M_non_dbg_impl.find_first_not_of(__s, __pos);
765 }

◆ find_first_not_of() [7/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( const _Self __s,
size_type  __pos = 0 
) const
inline

◆ find_first_not_of() [8/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_not_of ( const _Self __s,
size_type  __pos = 0 
) const
inline

Definition at line 759 of file _string.h.

760 { return _M_non_dbg_impl.find_first_not_of(__s._M_non_dbg_impl, __pos); }

◆ find_first_of() [1/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_of ( _CharT  __c,
size_type  __pos = 0 
) const
inline

Definition at line 984 of file _string.h.

985 { return find(__c, __pos); }

◆ find_first_of() [2/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_of ( _CharT  __c,
size_type  __pos = 0 
) const
inline

Definition at line 739 of file _string.h.

740 { return _M_non_dbg_impl.find_first_of(__c, __pos); }

◆ find_first_of() [3/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find_first_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const

Definition at line 482 of file _string.c.

483 {
484 if (__pos >= size()) /*__pos + 1 > size()*/
485 return npos;
486 else {
487 const_iterator __result = _STLP_PRIV __str_find_first_of(begin() + __pos, end(),
488 __s, __s + __n,
489 __STATIC_CAST(_Traits*, 0));
490 return __result != end() ? __result - begin() : npos;
491 }
492}
_InputIter __str_find_first_of(_InputIter __first1, _InputIter __last1, const _CharT *__first2, const _CharT *__last2, _Traits *__traits)
Definition: _string.c:86

◆ find_first_of() [4/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const
inline

Definition at line 734 of file _string.h.

734 {
736 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
737 return _M_non_dbg_impl.find_first_of(__s, __pos, __n);
738 }

◆ find_first_of() [5/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_of ( const _CharT *  __s,
size_type  __pos = 0 
) const
inline

Definition at line 979 of file _string.h.

980 { _STLP_FIX_LITERAL_BUG(__s) return find_first_of(__s, __pos, _Traits::length(__s)); }
size_type find_first_of(const _Self &__s, size_type __pos=0) const
Definition: _string.h:976

◆ find_first_of() [6/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_of ( const _CharT *  __s,
size_type  __pos = 0 
) const
inline

Definition at line 729 of file _string.h.

729 {
731 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
732 return _M_non_dbg_impl.find_first_of(__s, __pos);
733 }

◆ find_first_of() [7/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_of ( const _Self __s,
size_type  __pos = 0 
) const
inline

◆ find_first_of() [8/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_first_of ( const _Self __s,
size_type  __pos = 0 
) const
inline

Definition at line 727 of file _string.h.

728 { return _M_non_dbg_impl.find_first_of(__s._M_non_dbg_impl, __pos); }

◆ find_last_not_of() [1/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( _CharT  __c,
size_type  __pos = npos 
) const

Definition at line 559 of file _string.c.

560{
561 const size_type __len = size();
562 if ( __len < 1 ) {
563 return npos;
564 }
565 const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
566 const_reverse_iterator __rlast = const_reverse_iterator(__last);
567 const_reverse_iterator __rresult =
568 _STLP_STD::find_if(__rlast, rend(),
570 return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
571}
reverse_iterator rend()
Definition: _string.h:392

◆ find_last_not_of() [2/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( _CharT  __c,
size_type  __pos = npos 
) const
inline

Definition at line 787 of file _string.h.

788 { return _M_non_dbg_impl.find_last_not_of(__c, __pos); }

◆ find_last_not_of() [3/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const

Definition at line 540 of file _string.c.

541{
542 typedef typename _Traits::char_type _CharType;
543 const size_type __len = size();
544 if ( __len < 1 ) {
545 return npos;
546 }
547 const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
548 const_reverse_iterator __rlast = const_reverse_iterator(__last);
549 const_reverse_iterator __rresult =
551 __STATIC_CAST(const _CharType*, __s),
552 __STATIC_CAST(const _CharType*, __s) + __n,
553 __STATIC_CAST(_Traits*, 0));
554 return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
555}

◆ find_last_not_of() [4/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const
inline

Definition at line 782 of file _string.h.

782 {
784 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
785 return _M_non_dbg_impl.find_last_not_of(__s, __pos, __n);
786 }

◆ find_last_not_of() [5/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( const _CharT *  __s,
size_type  __pos = npos 
) const
inline

Definition at line 1014 of file _string.h.

1015 { _STLP_FIX_LITERAL_BUG(__s) return find_last_not_of(__s, __pos, _Traits::length(__s)); }
size_type find_last_not_of(const _Self &__s, size_type __pos=npos) const
Definition: _string.h:1011

◆ find_last_not_of() [6/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( const _CharT *  __s,
size_type  __pos = npos 
) const
inline

Definition at line 777 of file _string.h.

777 {
779 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
780 return _M_non_dbg_impl.find_last_not_of(__s, __pos);
781 }

◆ find_last_not_of() [7/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( const _Self __s,
size_type  __pos = npos 
) const
inline

◆ find_last_not_of() [8/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_not_of ( const _Self __s,
size_type  __pos = npos 
) const
inline

Definition at line 775 of file _string.h.

776 { return _M_non_dbg_impl.find_last_not_of(__s._M_non_dbg_impl, __pos); }

◆ find_last_of() [1/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_of ( _CharT  __c,
size_type  __pos = npos 
) const
inline

Definition at line 996 of file _string.h.

997 { return rfind(__c, __pos); }
size_type rfind(const _Self &__s, size_type __pos=npos) const
Definition: _string.h:966

◆ find_last_of() [2/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_of ( _CharT  __c,
size_type  __pos = npos 
) const
inline

Definition at line 755 of file _string.h.

756 { return _M_non_dbg_impl.rfind(__c, __pos); }

◆ find_last_of() [3/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::find_last_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const

Definition at line 496 of file _string.c.

498{
499 const size_type __len = size();
500 if ( __len < 1 ) {
501 return npos;
502 }
503 const const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
504 const const_reverse_iterator __rresult =
505 _STLP_PRIV __str_find_first_of(const_reverse_iterator(__last), rend(),
506 __s, __s + __n,
507 __STATIC_CAST(_Traits*, 0));
508 return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
509}

◆ find_last_of() [4/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_of ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const
inline

Definition at line 750 of file _string.h.

750 {
752 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
753 return _M_non_dbg_impl.find_last_of(__s, __pos, __n);
754 }

◆ find_last_of() [5/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_of ( const _CharT *  __s,
size_type  __pos = npos 
) const
inline

Definition at line 991 of file _string.h.

992 { _STLP_FIX_LITERAL_BUG(__s) return find_last_of(__s, __pos, _Traits::length(__s)); }
size_type find_last_of(const _Self &__s, size_type __pos=npos) const
Definition: _string.h:988

◆ find_last_of() [6/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_of ( const _CharT *  __s,
size_type  __pos = npos 
) const
inline

Definition at line 745 of file _string.h.

745 {
747 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
748 return _M_non_dbg_impl.find_last_of(__s, __pos);
749 }

◆ find_last_of() [7/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_of ( const _Self __s,
size_type  __pos = npos 
) const
inline

◆ find_last_of() [8/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::find_last_of ( const _Self __s,
size_type  __pos = npos 
) const
inline

Definition at line 743 of file _string.h.

744 { return _M_non_dbg_impl.find_last_of(__s._M_non_dbg_impl, __pos); }

◆ get_allocator() [1/2]

◆ get_allocator() [2/2]

template<class _CharT , class _Traits , class _Alloc >
allocator_type basic_string< _CharT, _Traits, _Alloc >::get_allocator ( ) const
inline

Definition at line 88 of file _string.h.

88{ return _M_non_dbg_impl.get_allocator(); }

◆ if() [1/2]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::if ( __len  )

◆ if() [2/2]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::if ( __n  ,
max_size() -  __size 
) -> _M_throw_length_error()

◆ insert() [1/27]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
_CharT  __c 
)
inline

Definition at line 658 of file _string.h.

658 {
660 if (__p == end()) {
661 push_back(__c);
662 return this->_M_Finish() - 1;
663 }
664 else
665 return _M_insert_aux(__p, __c);
666 }
pointer _M_insert_aux(pointer, _CharT)
Definition: _string.c:256
void push_back(_CharT __c)
Definition: _string.h:534

◆ insert() [2/27]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
_CharT  __c 
)
inline

Definition at line 346 of file _string_workaround.h.

347 { return _Base::insert(__p, __c); }

◆ insert() [3/27]

template<class _CharT , class _Traits , class _Alloc >
iterator basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
_CharT  __c 
)
inline

Definition at line 426 of file _string.h.

426 {
427 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p))
428 size_type __old_capacity = capacity();
429 typename _Base::iterator __ret = _M_non_dbg_impl.insert(__p._M_iterator, __c);
430 _Compare_Capacity(__old_capacity);
431 return iterator(&_M_iter_list, __ret);
432 }

◆ insert() [4/27]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
_InputIter  __first,
_InputIter  __last 
)
inline

Definition at line 355 of file _string_workaround.h.

355 {
356 typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
357 _M_insert_dispatch(__p, __first, __last, _Integral());
358 }
void _M_insert_dispatch(iterator __p, _Integer __n, _Integer __x, const __true_type &)

◆ insert() [5/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 781 of file _string.h.

781 {
783 _M_insert(__p, __f, __l, _M_inside(__f));
784 }
bool _M_inside(const _CharT *__s) const
Definition: _string.h:371
void _M_insert(iterator __p, const _CharT *__f, const _CharT *__l, bool __self_ref)

◆ insert() [6/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 362 of file _string_workaround.h.

◆ insert() [7/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 455 of file _string.h.

455 {
457 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p))
458 _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f,__l))
459 size_type __old_capacity = capacity();
460 _M_non_dbg_impl.insert(__p._M_iterator, __f, __l);
461 _Compare_Capacity(__old_capacity);
462 }

◆ insert() [8/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
const_iterator  __f,
const_iterator  __l 
)
inline

Definition at line 468 of file _string.h.

468 {
469 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p))
470 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f,__l))
471# if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
472 _STLP_STD_DEBUG_CHECK(__check_if_not_owner(&_M_iter_list, __f))
473# endif
474 size_type __old_capacity = capacity();
475 _M_non_dbg_impl.insert(__p._M_iterator, __f._M_iterator, __l._M_iterator);
476 _Compare_Capacity(__old_capacity);
477 }

◆ insert() [9/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
iterator  __f,
iterator  __l 
)
inline

Definition at line 478 of file _string.h.

478 {
479 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p))
480 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f,__l))
481# if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
482 _STLP_STD_DEBUG_CHECK(__check_if_not_owner(&_M_iter_list, __f))
483# endif
484 size_type __old_capacity = capacity();
485 _M_non_dbg_impl.insert(__p._M_iterator, __f._M_iterator, __l._M_iterator);
486 _Compare_Capacity(__old_capacity);
487 }

◆ insert() [10/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
size_t  __n,
_CharT  __c 
)

Definition at line 280 of file _string.c.

281 {
282 if (__n != 0) {
283 if (this->_M_rest() > __n) {
284 const size_type __elems_after = this->_M_finish - __pos;
285 pointer __old_finish = this->_M_finish;
286 if (__elems_after >= __n) {
287 _STLP_PRIV __ucopy((this->_M_finish - __n) + 1, this->_M_finish + 1, this->_M_finish + 1);
288 this->_M_finish += __n;
289 _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1);
290 _Traits::assign(__pos, __n, __c);
291 }
292 else {
293 _STLP_PRIV __uninitialized_fill_n(this->_M_finish + 1, __n - __elems_after - 1, __c);
294 this->_M_finish += __n - __elems_after;
295 _STLP_PRIV __ucopy(__pos, __old_finish + 1, this->_M_finish);
296 this->_M_finish += __elems_after;
297 _Traits::assign(__pos, __elems_after + 1, __c);
298 }
299 }
300 else {
301 size_type __len = _M_compute_next_size(__n);
302 pointer __new_start = this->_M_start_of_storage.allocate(__len, __len);
303 pointer __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), __pos, __new_start);
304 __new_finish = _STLP_PRIV __uninitialized_fill_n(__new_finish, __n, __c);
305 __new_finish = _STLP_PRIV __ucopy(__pos, this->_M_finish, __new_finish);
306 _M_construct_null(__new_finish);
307 this->_M_deallocate_block();
308 this->_M_reset(__new_start, __new_finish, __new_start + __len);
309 }
310 }
311}

◆ insert() [11/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
size_t  __n,
_CharT  __c 
)
inline

Definition at line 349 of file _string_workaround.h.

350 { _Base::insert(__p, __n, __c); }

◆ insert() [12/27]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::insert ( iterator  __p,
size_t  __n,
_CharT  __c 
)
inline

Definition at line 434 of file _string.h.

434 {
435 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p))
436 size_type __old_capacity = capacity();
437 _M_non_dbg_impl.insert(__p._M_iterator, __n, __c);
438 _Compare_Capacity(__old_capacity);
439 }

◆ insert() [13/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _CharT *  __s 
)
inline

Definition at line 638 of file _string.h.

638 {
640 if (__pos > size())
641 this->_M_throw_out_of_range();
642 size_type __len = _Traits::length(__s);
643 if (__len > max_size() - size())
644 this->_M_throw_length_error();
645 _M_insert(this->_M_Start() + __pos, __s, __s + __len, _M_inside(__s));
646 return *this;
647 }

◆ insert() [14/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _CharT *  __s 
)
inline

Definition at line 335 of file _string_workaround.h.

335 {
337 _Base::insert(__pos, __s);
338 return *this;
339 }

◆ insert() [15/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _CharT *  __s 
)
inline

Definition at line 413 of file _string.h.

413 {
415 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
416 return insert(__pos, __s, _Traits::length(__s));
417 }

◆ insert() [16/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 628 of file _string.h.

628 {
630 if (__pos > size())
631 this->_M_throw_out_of_range();
632 if (__n > max_size() - size())
633 this->_M_throw_length_error();
634 _M_insert(begin() + __pos, __s, __s + __n, _M_inside(__s));
635 return *this;
636 }

◆ insert() [17/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 329 of file _string_workaround.h.

329 {
331 _Base::insert(__pos, __s, __n);
332 return *this;
333 }

◆ insert() [18/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 404 of file _string.h.

404 {
406 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
407 size_type __old_capacity = capacity();
408 _M_non_dbg_impl.insert(__pos, __s, __n);
409 _Compare_Capacity(__old_capacity);
410 return *this;
411 }

◆ insert() [19/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _Self __s 
)
inline

Definition at line 608 of file _string.h.

608 {
609 if (__pos > size())
610 this->_M_throw_out_of_range();
611 if (__s.size() > max_size() - size())
612 this->_M_throw_length_error();
613 _M_insert(begin() + __pos, __s._M_Start(), __s._M_Finish(), &__s == this);
614 return *this;
615 }

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::insert(), and TMapLoader::Load().

◆ insert() [20/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _Self __s 
)
inline

Definition at line 319 of file _string_workaround.h.

319 {
320 _Base::insert(__pos, __s);
321 return *this;
322 }

◆ insert() [21/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _Self __s 
)
inline

Definition at line 389 of file _string.h.

389 {
390 size_type __old_capacity = capacity();
391 _M_non_dbg_impl.insert(__pos, __s._M_non_dbg_impl);
392 _Compare_Capacity(__old_capacity);
393 return *this;
394 }

◆ insert() [22/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _Self __s,
size_type  __beg,
size_type  __n 
)
inline

Definition at line 617 of file _string.h.

618 {
619 if (__pos > size() || __beg > __s.size())
620 this->_M_throw_out_of_range();
621 size_type __len = (min) (__n, __s.size() - __beg);
622 if (__len > max_size() - size())
623 this->_M_throw_length_error();
624 _M_insert(begin() + __pos,
625 __s._M_Start() + __beg, __s._M_Start() + __beg + __len, &__s == this);
626 return *this;
627 }

◆ insert() [23/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _Self __s,
size_type  __beg,
size_type  __n 
)
inline

Definition at line 324 of file _string_workaround.h.

325 {
326 _Base::insert(__pos, __s, __beg, __n);
327 return *this;
328 }

◆ insert() [24/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
const _Self __s,
size_type  __beg,
size_type  __n 
)
inline

Definition at line 396 of file _string.h.

397 {
398 size_type __old_capacity = capacity();
399 _M_non_dbg_impl.insert(__pos, __s._M_non_dbg_impl, __beg, __n);
400 _Compare_Capacity(__old_capacity);
401 return *this;
402 }

◆ insert() [25/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
size_type  __n,
_CharT  __c 
)
inline

Definition at line 649 of file _string.h.

649 {
650 if (__pos > size())
651 this->_M_throw_out_of_range();
652 if (__n > max_size() - size())
653 this->_M_throw_length_error();
654 insert(begin() + __pos, __n, __c);
655 return *this;
656 }

◆ insert() [26/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
size_type  __n,
_CharT  __c 
)
inline

Definition at line 341 of file _string_workaround.h.

341 {
342 _Base::insert(__pos, __n, __c);
343 return *this;
344 }

◆ insert() [27/27]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::insert ( size_type  __pos,
size_type  __n,
_CharT  __c 
)
inline

Definition at line 419 of file _string.h.

419 {
420 size_type __old_capacity = capacity();
421 _M_non_dbg_impl.insert(__pos, __n, __c);
422 _Compare_Capacity(__old_capacity);
423 return *this;
424 }

◆ length() [1/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::length ( ) const
inline

Definition at line 401 of file _string.h.

401{ return size(); }

Referenced by BtrfsRecv::cmd_removexattr(), BtrfsRecv::cmd_setxattr(), find_devices(), and TMapLoader::LookForPart().

◆ length() [2/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::length ( ) const
inline

Definition at line 195 of file _string.h.

195{ return _M_non_dbg_impl.length(); }

◆ max_size() [1/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::max_size ( ) const
inline

◆ max_size() [2/2]

template<class _CharT , class _Traits , class _Alloc >
size_t basic_string< _CharT, _Traits, _Alloc >::max_size ( ) const
inline

Definition at line 196 of file _string.h.

196{ return _M_non_dbg_impl.max_size(); }

◆ operator+=() [1/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( _CharT  __c)
inline

Definition at line 453 of file _string.h.

453{ push_back(__c); return *this; }

◆ operator+=() [2/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( _CharT  __c)
inline

Definition at line 157 of file _string_workaround.h.

157 {
158 _Base::operator+=(__c);
159 return *this;
160 }

◆ operator+=() [3/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( _CharT  __c)
inline

Definition at line 240 of file _string.h.

240{ return append(1, __c); }

◆ operator+=() [4/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( const _CharT *  __s)
inline

Definition at line 452 of file _string.h.

452{ _STLP_FIX_LITERAL_BUG(__s) return append(__s); }

◆ operator+=() [5/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( const _CharT *  __s)
inline

Definition at line 152 of file _string_workaround.h.

152 {
154 _Base::operator+=(__s);
155 return *this;
156 }

◆ operator+=() [6/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( const _CharT *  __s)
inline

Definition at line 235 of file _string.h.

235 {
237 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
238 return append(__s);
239 }

◆ operator+=() [7/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( const _Self __s)
inline

Definition at line 451 of file _string.h.

451{ return append(__s); }

◆ operator+=() [8/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( const _Self __s)
inline

Definition at line 148 of file _string_workaround.h.

148 {
149 _Base::operator+=(__s);
150 return *this;
151 }

◆ operator+=() [9/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator+= ( const _Self __s)
inline

Definition at line 234 of file _string.h.

234{ return append(__s); }

◆ operator=() [1/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( _CharT  __c)
inline

Definition at line 358 of file _string.h.

359 { return assign(__STATIC_CAST(size_type,1), __c); }

◆ operator=() [2/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( _CharT  __c)
inline

Definition at line 107 of file _string_workaround.h.

107 {
108 _Base::operator=(__c);
109 return *this;
110 }

◆ operator=() [3/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( _CharT  __c)
inline

Definition at line 178 of file _string.h.

178 {
179 return assign(1, __c);
180 }

◆ operator=() [4/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( const _CharT *  __s)
inline

Definition at line 353 of file _string.h.

353 {
355 return _M_assign(__s, __s + traits_type::length(__s));
356 }

◆ operator=() [5/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( const _CharT *  __s)
inline

Definition at line 102 of file _string_workaround.h.

102 {
103 _Base::operator=(__s);
104 return *this;
105 }

◆ operator=() [6/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( const _CharT *  __s)
inline

Definition at line 172 of file _string.h.

172 {
174 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
175 return assign(__s);
176 }

◆ operator=() [7/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( const _Self __s)
inline

Definition at line 347 of file _string.h.

347 {
348 if (&__s != this)
349 _M_assign(__s._M_Start(), __s._M_Finish());
350 return *this;
351 }

◆ operator=() [8/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( const _Self __s)
inline

Definition at line 97 of file _string_workaround.h.

97 {
98 _Base::operator=(__s);
99 return *this;
100 }

◆ operator=() [9/9]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::operator= ( const _Self __s)
inline

Definition at line 165 of file _string.h.

165 {
166 if (this != &__s) {
167 assign(__s);
168 }
169 return *this;
170 }

◆ operator[]() [1/4]

template<class _CharT , class _Traits , class _Alloc >
reference basic_string< _CharT, _Traits, _Alloc >::operator[] ( size_type  __n)
inline

Definition at line 434 of file _string.h.

435 { return *(this->_M_Start() + __n); }

◆ operator[]() [2/4]

template<class _CharT , class _Traits , class _Alloc >
reference basic_string< _CharT, _Traits, _Alloc >::operator[] ( size_type  __n)
inline

Definition at line 225 of file _string.h.

225 {
226 _STLP_VERBOSE_ASSERT(__n < this->size(), _StlMsg_OUT_OF_BOUNDS)
227 return _M_non_dbg_impl[__n];
228 }

◆ operator[]() [3/4]

template<class _CharT , class _Traits , class _Alloc >
const_reference basic_string< _CharT, _Traits, _Alloc >::operator[] ( size_type  __n) const
inline

Definition at line 432 of file _string.h.

433 { return *(this->_M_Start() + __n); }

◆ operator[]() [4/4]

template<class _CharT , class _Traits , class _Alloc >
const_reference basic_string< _CharT, _Traits, _Alloc >::operator[] ( size_type  __n) const
inline

Definition at line 220 of file _string.h.

220 {
221 _STLP_VERBOSE_ASSERT(__n <= this->size(), _StlMsg_OUT_OF_BOUNDS);
222 return _M_non_dbg_impl[__n];
223 }

◆ pop_back() [1/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::pop_back ( )
inline

Definition at line 542 of file _string.h.

542 {
543 _Traits::assign(*(this->_M_Finish() - 1), _M_null());
544 --this->_M_finish;
545 }

◆ pop_back() [2/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::pop_back ( )
inline

Definition at line 318 of file _string.h.

318 {
319 _Invalidate_iterator(this->end());
320 _M_non_dbg_impl.pop_back();
321 }
void _Invalidate_iterator(const iterator &__it)
Definition: _string.h:80

◆ push_back() [1/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::push_back ( _CharT  __c)
inline

Definition at line 534 of file _string.h.

534 {
535 if (this->_M_rest() == 1 )
536 _M_reserve(_M_compute_next_size(1));
537 _M_construct_null(this->_M_Finish() + 1);
538 _Traits::assign(*(this->_M_Finish()), __c);
539 ++this->_M_finish;
540 }

Referenced by __copy_digits(), __copy_grouped_digits(), __copy_sign(), __read_float(), getline(), basic_string< _CharT, _Traits, _Alloc >::insert(), basic_string< _CharT, _Traits, _Alloc >::operator+=(), operator>>(), and snarf_tokens().

◆ push_back() [2/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::push_back ( _CharT  __c)
inline

Definition at line 312 of file _string.h.

312 {
313 size_type __old_capacity = this->capacity();
314 _M_non_dbg_impl.push_back(__c);
315 _Compare_Capacity(__old_capacity);
316 }

◆ rbegin() [1/4]

template<class _CharT , class _Traits , class _Alloc >
reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rbegin ( )
inline

Definition at line 390 of file _string.h.

391 { return reverse_iterator(this->_M_Finish()); }
#define reverse_iterator
Definition: _abbrevs.h:34

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::rbegin().

◆ rbegin() [2/4]

template<class _CharT , class _Traits , class _Alloc >
reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rbegin ( )
inline

Definition at line 188 of file _string.h.

188{ return reverse_iterator(end()); }

◆ rbegin() [3/4]

template<class _CharT , class _Traits , class _Alloc >
const_reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rbegin ( ) const
inline

Definition at line 394 of file _string.h.

395 { return const_reverse_iterator(this->_M_Finish()); }

◆ rbegin() [4/4]

template<class _CharT , class _Traits , class _Alloc >
const_reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rbegin ( ) const
inline

Definition at line 189 of file _string.h.

189{ return const_reverse_iterator(end()); }

◆ rend() [1/4]

template<class _CharT , class _Traits , class _Alloc >
reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rend ( )
inline

Definition at line 392 of file _string.h.

393 { return reverse_iterator(this->_M_Start()); }

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::rend().

◆ rend() [2/4]

template<class _CharT , class _Traits , class _Alloc >
reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rend ( )
inline

Definition at line 190 of file _string.h.

190{ return reverse_iterator(begin()); }

◆ rend() [3/4]

template<class _CharT , class _Traits , class _Alloc >
const_reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rend ( ) const
inline

Definition at line 396 of file _string.h.

397 { return const_reverse_iterator(this->_M_Start()); }

◆ rend() [4/4]

template<class _CharT , class _Traits , class _Alloc >
const_reverse_iterator basic_string< _CharT, _Traits, _Alloc >::rend ( ) const
inline

Definition at line 191 of file _string.h.

191{ return const_reverse_iterator(begin()); }

◆ replace() [1/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __f,
iterator  __l,
const _CharT *  __s 
)
inline

Definition at line 573 of file _string.h.

573 {
575 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end()))
576 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
577 size_type __old_capacity = capacity();
578 _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __s);
579 _Compare_Capacity(__old_capacity);
580 return *this;
581 }

◆ replace() [2/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __f,
iterator  __l,
const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 563 of file _string.h.

563 {
565 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end()))
566 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
567 size_type __old_capacity = capacity();
568 _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __s, __n);
569 _Compare_Capacity(__old_capacity);
570 return *this;
571 }

◆ replace() [3/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __f,
iterator  __l,
const _Self __s 
)
inline

Definition at line 555 of file _string.h.

555 {
556 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end()))
557 size_type __old_capacity = capacity();
558 _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __s._M_non_dbg_impl);
559 _Compare_Capacity(__old_capacity);
560 return *this;
561 }

◆ replace() [4/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __f,
iterator  __l,
size_type  __n,
_CharT  __c 
)
inline

Definition at line 583 of file _string.h.

583 {
584 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end()))
585 size_type __old_capacity = capacity();
586 _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __n, __c);
587 _Compare_Capacity(__old_capacity);
588 return *this;
589 }

◆ replace() [5/33]

template<class _CharT , class _Traits , class _Alloc >
template<class _InputIter >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
_InputIter  __f,
_InputIter  __l 
)
inline

Definition at line 534 of file _string_workaround.h.

535 {
537 typedef typename _IsIntegral<_InputIter>::_Ret _Integral;
538 return _M_replace_dispatch(__first, __last, __f, __l, _Integral());
539 }
_Self & _M_replace_dispatch(iterator __first, iterator __last, _Integer __n, _Integer __x, const __true_type &)

◆ replace() [6/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _CharT *  __f,
const _CharT *  __l 
)
inline

◆ replace() [7/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _CharT *  __f,
const _CharT *  __l 
)
inline

◆ replace() [8/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _CharT *  __f,
const _CharT *  __l 
)
inline

Definition at line 607 of file _string.h.

608 {
610 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end()))
611 _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l))
612 size_type __old_capacity = capacity();
613 _M_non_dbg_impl.replace(__first._M_iterator, __last._M_iterator, __f, __l);
614 _Compare_Capacity(__old_capacity);
615 return *this;
616 }

◆ replace() [9/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _CharT *  __s 
)
inline

Definition at line 879 of file _string.h.

880 {
883 return _M_replace(__first, __last, __s, __s + _Traits::length(__s), _M_inside(__s));
884 }

◆ replace() [10/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _CharT *  __s 
)
inline

Definition at line 516 of file _string_workaround.h.

517 {
520 _Base::replace(__first, __last, __s);
521 return *this;
522 }

◆ replace() [11/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 872 of file _string.h.

◆ replace() [12/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _CharT *  __s,
size_type  __n 
)
inline

Definition at line 508 of file _string_workaround.h.

509 {
512 _Base::replace(__first, __last, __s, __n);
513 return *this;
514 }

◆ replace() [13/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _Self __s 
)
inline

Definition at line 867 of file _string.h.

867 {
869 return _M_replace(__first, __last, __s._M_Start(), __s._M_Finish(), &__s == this);
870 }

◆ replace() [14/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const _Self __s 
)
inline

Definition at line 502 of file _string_workaround.h.

502 {
504 _Base::replace(__first, __last, __s);
505 return *this;
506 }

◆ replace() [15/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
const_iterator  __f,
const_iterator  __l 
)
inline

Definition at line 620 of file _string.h.

621 {
622 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end()))
623 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l))
624 size_type __old_capacity = capacity();
625 _M_non_dbg_impl.replace(__first._M_iterator, __last._M_iterator,
626 __f._M_iterator, __l._M_iterator);
627 _Compare_Capacity(__old_capacity);
628 return *this;
629 }

◆ replace() [16/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
iterator  __f,
iterator  __l 
)
inline

Definition at line 630 of file _string.h.

631 {
632 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end()))
633 _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l))
634 size_type __old_capacity = capacity();
635 _M_non_dbg_impl.replace(__first._M_iterator, __last._M_iterator,
636 __f._M_iterator, __l._M_iterator);
637 _Compare_Capacity(__old_capacity);
638 return *this;
639 }

◆ replace() [17/33]

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc > & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
size_type  __n,
_CharT  __c 
)

Definition at line 372 of file _string.c.

373 {
375
376 if (__len >= __n) {
377 _Traits::assign(__first, __n, __c);
379 }
380 else {
381 _Traits::assign(__first, __len, __c);
383 }
384 return *this;
385}

◆ replace() [18/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( iterator  __first,
iterator  __last,
size_type  __n,
_CharT  __c 
)
inline

Definition at line 524 of file _string_workaround.h.

525 {
527 _Base::replace(__first, __last, __n, __c);
528 return *this;
529 }

◆ replace() [19/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n,
const _Self __s 
)
inline

Definition at line 813 of file _string.h.

813 {
814 const size_type __size = size();
815 if (__pos > __size)
816 this->_M_throw_out_of_range();
817 const size_type __len = (min) (__n, __size - __pos);
818 if (__s.size() > max_size() - (__size - __len))
819 this->_M_throw_length_error();
820 return _M_replace(begin() + __pos, begin() + __pos + __len,
821 __s._M_Start(), __s._M_Finish(), &__s == this);
822 }

Referenced by basic_string< _CharT, _Traits, _Alloc >::_M_replace_dispatch(), __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::replace(), and basic_string< _CharT, _Traits, _Alloc >::replace().

◆ replace() [20/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n,
const _Self __s 
)
inline

Definition at line 472 of file _string_workaround.h.

472 {
473 _Base::replace(__pos, __n, __s);
474 return *this;
475 }

◆ replace() [21/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n,
const _Self __s 
)
inline

Definition at line 515 of file _string.h.

515 {
516 size_type __old_capacity = capacity();
517 _M_non_dbg_impl.replace(__pos, __n, __s._M_non_dbg_impl);
518 _Compare_Capacity(__old_capacity);
519 return *this;
520 }

◆ replace() [22/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
const _CharT *  __s 
)
inline

Definition at line 851 of file _string.h.

851 {
853 return replace(__pos, __n1, __s, _Traits::length(__s));
854 }

◆ replace() [23/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
const _CharT *  __s 
)
inline

Definition at line 490 of file _string_workaround.h.

490 {
492 _Base::replace(__pos, __n1, __s);
493 return *this;
494 }

◆ replace() [24/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
const _CharT *  __s 
)
inline

Definition at line 539 of file _string.h.

539 {
541 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
542 size_type __old_capacity = capacity();
543 _M_non_dbg_impl.replace(__pos, __n1, __s);
544 _Compare_Capacity(__old_capacity);
545 return *this;
546 }

◆ replace() [25/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
const _CharT *  __s,
size_type  __n2 
)
inline

Definition at line 838 of file _string.h.

839 {
841 const size_type __size = size();
842 if (__pos > __size)
843 this->_M_throw_out_of_range();
844 const size_type __len = (min) (__n1, __size - __pos);
845 if (__n2 > max_size() - (__size - __len))
846 this->_M_throw_length_error();
847 return _M_replace(begin() + __pos, begin() + __pos + __len,
848 __s, __s + __n2, _M_inside(__s));
849 }

◆ replace() [26/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
const _CharT *  __s,
size_type  __n2 
)
inline

Definition at line 483 of file _string_workaround.h.

484 {
486 _Base::replace(__pos, __n1, __s, __n2);
487 return *this;
488 }

◆ replace() [27/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
const _CharT *  __s,
size_type  __n2 
)
inline

Definition at line 530 of file _string.h.

530 {
532 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
533 size_type __old_capacity = capacity();
534 _M_non_dbg_impl.replace(__pos, __n1, __s, __n2);
535 _Compare_Capacity(__old_capacity);
536 return *this;
537 }

◆ replace() [28/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
size_type  __n2,
_CharT  __c 
)
inline

Definition at line 856 of file _string.h.

857 {
858 const size_type __size = size();
859 if (__pos > __size)
860 this->_M_throw_out_of_range();
861 const size_type __len = (min) (__n1, __size - __pos);
862 if (__n2 > max_size() - (__size - __len))
863 this->_M_throw_length_error();
864 return replace(begin() + __pos, begin() + __pos + __len, __n2, __c);
865 }

◆ replace() [29/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
size_type  __n2,
_CharT  __c 
)
inline

Definition at line 496 of file _string_workaround.h.

497 {
498 _Base::replace(__pos, __n1, __n2, __c);
499 return *this;
500 }

◆ replace() [30/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos,
size_type  __n1,
size_type  __n2,
_CharT  __c 
)
inline

Definition at line 548 of file _string.h.

548 {
549 size_type __old_capacity = capacity();
550 _M_non_dbg_impl.replace(__pos, __n1, __n2, __c);
551 _Compare_Capacity(__old_capacity);
552 return *this;
553 }

◆ replace() [31/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos1,
size_type  __n1,
const _Self __s,
size_type  __pos2,
size_type  __n2 
)
inline

Definition at line 824 of file _string.h.

825 {
826 const size_type __size1 = size();
827 const size_type __size2 = __s.size();
828 if (__pos1 > __size1 || __pos2 > __size2)
829 this->_M_throw_out_of_range();
830 const size_type __len1 = (min) (__n1, __size1 - __pos1);
831 const size_type __len2 = (min) (__n2, __size2 - __pos2);
832 if (__len2 > max_size() - (__size1 - __len1))
833 this->_M_throw_length_error();
834 return _M_replace(begin() + __pos1, begin() + __pos1 + __len1,
835 __s._M_Start() + __pos2, __s._M_Start() + __pos2 + __len2, &__s == this);
836 }

◆ replace() [32/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos1,
size_type  __n1,
const _Self __s,
size_type  __pos2,
size_type  __n2 
)
inline

Definition at line 477 of file _string_workaround.h.

478 {
479 _Base::replace(__pos1, __n1, __s, __pos2, __n2);
480 return *this;
481 }

◆ replace() [33/33]

template<class _CharT , class _Traits , class _Alloc >
_Self & basic_string< _CharT, _Traits, _Alloc >::replace ( size_type  __pos1,
size_type  __n1,
const _Self __s,
size_type  __pos2,
size_type  __n2 
)
inline

Definition at line 522 of file _string.h.

523 {
524 size_type __old_capacity = capacity();
525 _M_non_dbg_impl.replace(__pos1, __n1, __s._M_non_dbg_impl, __pos2, __n2);
526 _Compare_Capacity(__old_capacity);
527 return *this;
528 }

◆ reserve() [1/2]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::reserve ( size_type  __s = 0)
inline

Definition at line 208 of file _string.h.

208 {
209 if (__s > capacity()) _Invalidate_all();
210 _M_non_dbg_impl.reserve(__s);
211 }

◆ reserve() [2/2]

template<class _CharT , class _Traits , class _Alloc >
_STLP_MOVE_TO_STD_NAMESPACE void basic_string< _CharT, _Traits, _Alloc >::reserve ( size_type  __res_arg = 0)

Definition at line 158 of file _string.c.

158 {
159 if (__res_arg > max_size())
160 this->_M_throw_length_error();
161
162 size_type __n = (max)(__res_arg, size()) + 1;
163 if (__n < this->_M_capacity())
164 return;
165
167}
#define max(a, b)
Definition: svc.c:63

Referenced by operator>>().

◆ resize() [1/4]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::resize ( size_type  __n)
inline

Definition at line 411 of file _string.h.

411{ resize(__n, _M_null()); }
void resize(size_type __n, _CharT __c)
Definition: _string.h:404

Referenced by basic_string< _CharT, _Traits, _Alloc >::resize().

◆ resize() [2/4]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::resize ( size_type  __n)
inline

Definition at line 205 of file _string.h.

Referenced by basic_string< _CharT, _Traits, _Alloc >::resize().

◆ resize() [3/4]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::resize ( size_type  __n,
_CharT  __c 
)
inline

Definition at line 404 of file _string.h.

404 {
405 if (__n <= size())
406 erase(begin() + __n, end());
407 else
408 append(__n - size(), __c);
409 }

◆ resize() [4/4]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::resize ( size_type  __n,
_CharT  __c 
)
inline

Definition at line 198 of file _string.h.

198 {
199 if (__n > capacity())
201 else if (__n < size())
203 _M_non_dbg_impl.resize(__n, __c);
204 }

◆ rfind() [1/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::rfind ( _CharT  __c,
size_type  __pos = npos 
) const

Definition at line 468 of file _string.c.

469{
470 const size_type __len = size();
471 if ( __len < 1 ) {
472 return npos;
473 }
474 const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
475 const_reverse_iterator __rresult =
476 _STLP_STD::find_if(const_reverse_iterator(__last), rend(),
478 return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos;
479}

◆ rfind() [2/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::rfind ( _CharT  __c,
size_type  __pos = npos 
) const
inline

Definition at line 723 of file _string.h.

724 { return _M_non_dbg_impl.rfind(__c, __pos); }

◆ rfind() [3/8]

template<class _CharT , class _Traits , class _Alloc >
__size_type__ basic_string< _CharT, _Traits, _Alloc >::rfind ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const

Definition at line 451 of file _string.c.

453{
454 const size_type __len = size();
455 if ( __len < __n ) {
456 return npos;
457 }
458 const_pointer __last = this->_M_Start() + (min)( __len - __n, __pos) + __n;
459 if ( __n == 0 ) { // marginal case
460 return __last - this->_M_Start();
461 }
462 const_pointer __result = _STLP_STD::find_end(this->_M_Start(), __last,
463 __s, __s + __n, _STLP_PRIV _Eq_traits<_Traits>());
464 return __result != __last ? __result - this->_M_Start() : npos;
465}

◆ rfind() [4/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::rfind ( const _CharT *  __s,
size_type  __pos,
size_type  __n 
) const
inline

Definition at line 718 of file _string.h.

718 {
720 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
721 return _M_non_dbg_impl.rfind(__s, __pos, __n);
722 }

◆ rfind() [5/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::rfind ( const _CharT *  __s,
size_type  __pos = npos 
) const
inline

Definition at line 969 of file _string.h.

970 { _STLP_FIX_LITERAL_BUG(__s) return rfind(__s, __pos, _Traits::length(__s)); }

◆ rfind() [6/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::rfind ( const _CharT *  __s,
size_type  __pos = npos 
) const
inline

Definition at line 713 of file _string.h.

713 {
715 _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
716 return _M_non_dbg_impl.rfind(__s, __pos);
717 }

◆ rfind() [7/8]

◆ rfind() [8/8]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::rfind ( const _Self __s,
size_type  __pos = npos 
) const
inline

Definition at line 711 of file _string.h.

712 { return _M_non_dbg_impl.rfind(__s._M_non_dbg_impl, __pos); }

◆ size() [1/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::size ( ) const
inline

Definition at line 400 of file _string.h.

400{ return this->_M_Finish() - this->_M_Start(); }

Referenced by __copy_grouped_digits(), __do_get_alphabool(), __get_integer(), __get_monetary_value(), __insert_grouping_aux(), __locale_do_operator_call(), __put_float(), __stl_string_hash(), bitset< _Nb >::_M_copy_from_string(), basic_stringbuf< _CharT, _Traits, _Alloc >::_S_finish(), _S_string_copy(), basic_string< _CharT, _Traits, _Alloc >::append(), basic_string< _CharT, _Traits, _Alloc >::assign(), basic_string< _CharT, _Traits, _Alloc >::at(), basic_string< _CharT, _Traits, _Alloc >::basic_string(), bitset< _Nb >::bitset(), basic_string< _CharT, _Traits, _Alloc >::compare(), basic_string< _CharT, _Traits, _Alloc >::copy(), basic_string< _CharT, _Traits, _Alloc >::erase(), basic_string< _CharT, _Traits, _Alloc >::find(), basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), basic_string< _CharT, _Traits, _Alloc >::find_first_of(), basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), basic_string< _CharT, _Traits, _Alloc >::find_last_of(), generic_match(), basic_string< _CharT, _Traits, _Alloc >::insert(), basic_string< _CharT, _Traits, _Alloc >::length(), match_quoted_const(), RequestHandler::OkToSend(), operator+(), operator<<(), operator==(), basic_string< _CharT, _Traits, _Alloc >::operator[](), RequestHandler::process_request(), RequestHandler::RecvData(), basic_string< _CharT, _Traits, _Alloc >::replace(), basic_string< _CharT, _Traits, _Alloc >::resize(), basic_string< _CharT, _Traits, _Alloc >::rfind(), short_string_optim_bug_helper(), __bstr_wrapper< _CharT, _Traits, _Alloc >::size(), snarf_tokens(), StringOut(), and translate_identifier_construct().

◆ size() [2/2]

template<class _CharT , class _Traits , class _Alloc >
size_type basic_string< _CharT, _Traits, _Alloc >::size ( ) const
inline

Definition at line 194 of file _string.h.

194{ return _M_non_dbg_impl.size(); }

◆ substr() [1/3]

◆ substr() [2/3]

template<class _CharT , class _Traits , class _Alloc >
_Self basic_string< _CharT, _Traits, _Alloc >::substr ( size_type  __pos = 0,
size_type  __n = npos 
) const
inline

Definition at line 582 of file _string_workaround.h.

583 { return _Self(*this, __pos, __n, this->get_allocator()); }

◆ substr() [3/3]

template<class _CharT , class _Traits , class _Alloc >
_Self basic_string< _CharT, _Traits, _Alloc >::substr ( size_type  __pos = 0,
size_type  __n = npos 
) const
inline

Definition at line 511 of file _string.h.

512 { return _M_non_dbg_impl.substr(__pos, __n); }

◆ swap() [1/3]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::swap ( _Self __s)
inline

Definition at line 942 of file _string.h.

942{ this->_M_swap(__s); }

Referenced by __bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection >::swap(), and swap().

◆ swap() [2/3]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::swap ( _Self __s)
inline

Definition at line 576 of file _string_workaround.h.

576{ _Base::swap(__s); }

◆ swap() [3/3]

template<class _CharT , class _Traits , class _Alloc >
void basic_string< _CharT, _Traits, _Alloc >::swap ( _Self __s)
inline

Definition at line 643 of file _string.h.

643 {
644 _M_iter_list._Swap_owners(__s._M_iter_list);
645 _M_non_dbg_impl.swap(__s._M_non_dbg_impl);
646 }

Member Data Documentation

◆ __f

◆ __first

◆ __l

◆ __last [1/2]

◆ __last [2/2]

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE iterator basic_string< _CharT, _Traits, _Alloc >::__last

Definition at line 889 of file _string.h.

◆ __len [1/2]

◆ __len [2/2]

template<class _CharT , class _Traits , class _Alloc >
return basic_string< _CharT, _Traits, _Alloc >::__len

Definition at line 309 of file _string.h.

◆ __pad0__

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE basic_string< _CharT, _Traits, _Alloc >::__pad0__
private

Definition at line 126 of file _string.h.

◆ __pad1__

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE basic_string< _CharT, _Traits, _Alloc >::__pad1__

Definition at line 301 of file _string.h.

◆ __pad2__

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE basic_string< _CharT, _Traits, _Alloc >::__pad2__
private

Definition at line 365 of file _string.h.

◆ __pad3__

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE basic_string< _CharT, _Traits, _Alloc >::__pad3__

Definition at line 670 of file _string.h.

◆ __pad4__

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE basic_string< _CharT, _Traits, _Alloc >::__pad4__

Definition at line 888 of file _string.h.

◆ __self_ref [1/2]

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE const _CharT const _CharT bool basic_string< _CharT, _Traits, _Alloc >::__self_ref

◆ __self_ref [2/2]

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE iterator const _CharT const _CharT bool basic_string< _CharT, _Traits, _Alloc >::__self_ref

Definition at line 890 of file _string.h.

◆ _Base

template<class _CharT , class _Traits , class _Alloc >
_STLP_PRIVATE _Alloc basic_string< _CharT, _Traits, _Alloc >::_Base
private

Definition at line 127 of file _string.h.

◆ _M_iter_list

◆ _M_non_dbg_impl

template<class _CharT , class _Traits , class _Alloc >
_Base basic_string< _CharT, _Traits, _Alloc >::_M_non_dbg_impl
private

Definition at line 70 of file _string.h.

Referenced by basic_string< _CharT, _Traits, _Alloc >::append(), basic_string< _CharT, _Traits, _Alloc >::assign(), basic_string< _CharT, _Traits, _Alloc >::at(), basic_string< _CharT, _Traits, _Alloc >::begin(), basic_string< _CharT, _Traits, _Alloc >::c_str(), basic_string< _CharT, _Traits, _Alloc >::capacity(), basic_string< _CharT, _Traits, _Alloc >::clear(), basic_string< _CharT, _Traits, _Alloc >::compare(), basic_string< _CharT, _Traits, _Alloc >::copy(), basic_string< _CharT, _Traits, _Alloc >::data(), basic_string< _CharT, _Traits, _Alloc >::empty(), basic_string< _CharT, _Traits, _Alloc >::end(), basic_string< _CharT, _Traits, _Alloc >::erase(), basic_string< _CharT, _Traits, _Alloc >::find(), basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), basic_string< _CharT, _Traits, _Alloc >::find_first_of(), basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), basic_string< _CharT, _Traits, _Alloc >::find_last_of(), basic_string< _CharT, _Traits, _Alloc >::get_allocator(), basic_string< _CharT, _Traits, _Alloc >::insert(), basic_string< _CharT, _Traits, _Alloc >::length(), basic_string< _CharT, _Traits, _Alloc >::max_size(), basic_string< _CharT, _Traits, _Alloc >::operator[](), basic_string< _CharT, _Traits, _Alloc >::pop_back(), basic_string< _CharT, _Traits, _Alloc >::push_back(), basic_string< _CharT, _Traits, _Alloc >::replace(), basic_string< _CharT, _Traits, _Alloc >::reserve(), basic_string< _CharT, _Traits, _Alloc >::resize(), basic_string< _CharT, _Traits, _Alloc >::rfind(), basic_string< _CharT, _Traits, _Alloc >::size(), basic_string< _CharT, _Traits, _Alloc >::substr(), and basic_string< _CharT, _Traits, _Alloc >::swap().

◆ _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS

template<class _CharT , class _Traits , class _Alloc >
basic_string< _CharT, _Traits, _Alloc >::_STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS

Definition at line 145 of file _string.h.


The documentation for this class was generated from the following files: