ReactOS  0.4.14-dev-614-gbfd8a84
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 _Base::_Iterator_category basic_string< _CharT, _Traits, _Alloc >::_Iterator_category

Definition at line 41 of file _string_workaround.h.

◆ _Iterator_category [2/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.

◆ _Reserve_t [1/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 [2/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.

◆ _Reserve_t [3/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.

◆ _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 34 of file _string_workaround.h.

◆ _Self [2/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.

◆ _Self [3/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.

◆ 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 _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_iterator [2/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_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 _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.

◆ iterator [2/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.

◆ 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 _Base::traits_type basic_string< _CharT, _Traits, _Alloc >::traits_type

Definition at line 42 of file _string_workaround.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 61 of file _string.h.

◆ traits_type [3/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.

◆ 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)
162  { _M_terminate_string(); }
163  explicit basic_string(const allocator_type& __a)
164 #endif
165  : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, _Base::_DEFAULT_SIZE)
166  { _M_terminate_string(); }
void _M_terminate_string()
Definition: _string.h:369
basic_string(const allocator_type &__a=allocator_type())
Definition: _string.h:158
#define _STLP_PRIV
Definition: _dm.h:70
_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.

174  { _M_terminate_string(); }
175  basic_string(_Reserve_t, size_t __n, const allocator_type& __a)
176 #endif
178  { _M_terminate_string(); }
void _M_terminate_string()
Definition: _string.h:369
return __n
Definition: _algo.h:75
basic_string(const allocator_type &__a=allocator_type())
Definition: _string.h:158
#define _STLP_PRIV
Definition: _dm.h:70
_Base::allocator_type allocator_type
Definition: _string.h:152
_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()); }
#define _STLP_PRIV
Definition: _dm.h:70
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  }
return __n
Definition: _algo.h:75
#define _Alloc
Definition: _bvector.h:330
_Base::size_type size_type
Definition: _string.h:138
basic_string(const allocator_type &__a=allocator_type())
Definition: _string.h:158
#define _STLP_PRIV
Definition: _dm.h:70
basic_string< _CharT, _Traits, _Alloc > _Self
Definition: _string.h:128
#define min(a, b)
Definition: monoChain.cc:55
_Base::allocator_type allocator_type
Definition: _string.h:152
void _M_range_initialize(_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
Definition: _string.h:313

◆ 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  }
return __n
Definition: _algo.h:75
_Base::size_type size_type
Definition: _string.h:138
basic_string(const allocator_type &__a=allocator_type())
Definition: _string.h:158
#define _STLP_PRIV
Definition: _dm.h:70
_Base::allocator_type allocator_type
Definition: _string.h:152
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
void _M_range_initialize(_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
Definition: _string.h:313

◆ 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 }
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
void _M_range_initialize(_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
Definition: _string.h:313

◆ 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  }
void _M_terminate_string()
Definition: _string.h:369
return __n
Definition: _algo.h:75
#define __c
Definition: schilyio.h:209
_Base::size_type size_type
Definition: _string.h:138
basic_string(const allocator_type &__a=allocator_type())
Definition: _string.h:158
#define _STLP_PRIV
Definition: _dm.h:70
_Base::allocator_type allocator_type
Definition: _string.h:152
_ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)

◆ 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 * __f
Definition: _string.h:889
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
void _M_range_initialize(_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
Definition: _string.h:313
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ 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) {}
return __n
Definition: _algo.h:75
#define _STLP_NO_MEM_T_STRING_BASE

◆ 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.

#define _STLP_NO_MEM_T_STRING_BASE

◆ 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) {}
return __n
Definition: _algo.h:75
#define _STLP_NO_MEM_T_STRING_BASE

◆ 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) {}
return __n
Definition: _algo.h:75
#define _STLP_NO_MEM_T_STRING_BASE

◆ 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) {}
#define _STLP_NO_MEM_T_STRING_BASE

◆ 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.

return __n
Definition: _algo.h:75
#define __c
Definition: schilyio.h:209
#define _STLP_NO_MEM_T_STRING_BASE

◆ 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.

#define _STLP_NO_MEM_T_STRING_BASE
GLenum src
Definition: glext.h:6340

◆ 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  }
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_NO_MEM_T_STRING_BASE
_Base::_CalledFromWorkaround_t _CalledFromWorkaround_t
void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type &)
Definition: _string.h:335
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ 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.

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

◆ 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.

return __n
Definition: _algo.h:75
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ 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 __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
_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),
return __n
Definition: _algo.h:75
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ 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.

108  : _ConstructCheck(__s), _M_non_dbg_impl(__s, __n, __a),
return __n
Definition: _algo.h:75
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
_STLP_PRIV __construct_checker< _STLP_NON_DBG_STRING > _ConstructCheck
Definition: _string.h:56

◆ 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.

113  : _ConstructCheck(__s),
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
_STLP_PRIV __construct_checker< _STLP_NON_DBG_STRING > _ConstructCheck
Definition: _string.h:56

◆ 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.

return __n
Definition: _algo.h:75
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
#define __c
Definition: schilyio.h:209

◆ 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  }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
GLenum src
Definition: glext.h:6340

◆ 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.

135  : _ConstructCheck(__f, __l),
137  }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_PRIV __construct_checker< _STLP_NON_DBG_STRING > _ConstructCheck
Definition: _string.h:56
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ 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.

140  : _ConstructCheck(__f, __l),
141  _M_non_dbg_impl(__f._M_iterator, __l._M_iterator, __a), _M_iter_list(&_M_non_dbg_impl) {
142  }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_PRIV __construct_checker< _STLP_NON_DBG_STRING > _ConstructCheck
Definition: _string.h:56
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ 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.

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

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_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_STLP_MOVE_TO_PRIV_NAMESPACE const _InputIterator const input_iterator_tag &_InputIterator __it(__first)
#define _STLP_PRIV
Definition: _dm.h:70

Referenced by basic_string< char, char_traits< char >, allocator< char > >::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

Definition at line 82 of file _string.h.

83  { _STLP_PRIV __invalidate_range(&_M_iter_list, __f, __l); }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_PRIV
Definition: _dm.h:70
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

Referenced by basic_string< char, char_traits< char >, allocator< char > >::erase(), and basic_string< char, char_traits< char >, allocator< char > >::resize().

◆ _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 }
return __n
Definition: _algo.h:75
GLsizei const GLvoid * pointer
Definition: glext.h:5848
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
iterator end()
Definition: _string.h:386
_Base::size_type size_type
Definition: _string.h:138
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
_STLP_BEGIN_NAMESPACE _STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __ucopy(_InputIter __first, _InputIter __last, _OutputIter __result, _Distance *)
#define _STLP_PRIV
Definition: _dm.h:70
size_type __len
Definition: _string.h:306

Referenced by basic_string< char, char_traits< char >, allocator< char > >::append().

◆ _M_append_dispatch() [1/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); }
return __n
Definition: _algo.h:75
_Base::size_type size_type
Definition: _string.h:138
_Self & append(const _CharT *__first, const _CharT *__last)
Definition: _string.h:509

Referenced by basic_string< char, char_traits< char >, allocator< char > >::append().

◆ _M_append_dispatch() [2/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)
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_Self & _M_appendT(_InputIter __first, _InputIter __last, const input_iterator_tag &)
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _M_appendT() [1/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

Definition at line 208 of file _string_workaround.h.

209  {
210  for ( ; __first != __last ; ++__first)
211  _Base::push_back(*__first);
212  return *this;
213  }
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671

Referenced by basic_string< char, char_traits< char >, allocator< char > >::_M_append_dispatch(), basic_string< char, char_traits< char >, allocator< char > >::_M_assign_dispatch(), and basic_string< char, char_traits< char >, allocator< char > >::_M_range_initialize().

◆ _M_appendT() [2/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) {
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  }
return __n
Definition: _algo.h:75
GLsizei const GLvoid * pointer
Definition: glext.h:5848
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
GLsizei GLsizei GLfloat distance
Definition: glext.h:11755
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
_Base::size_type size_type
Definition: _string.h:138
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
size_type __len
Definition: _string.h:306

◆ _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 }
return __n
Definition: _algo.h:75
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
iterator begin()
Definition: _string.h:385
_Self & _M_append(const _CharT *__first, const _CharT *__last)
Definition: _string.c:196
size_type size() const
Definition: _string.h:400
iterator end()
Definition: _string.h:386
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_Base::size_type size_type
Definition: _string.h:138
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
__kernel_ptrdiff_t ptrdiff_t
Definition: linux.h:247
_Self & erase(size_type __pos=0, size_type __n=npos)
Definition: _string.h:788
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

Referenced by basic_string< char, char_traits< char >, allocator< char > >::assign(), and basic_string< char, char_traits< char >, allocator< char > >::operator=().

◆ _M_assign_dispatch() [1/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); }
return __n
Definition: _algo.h:75
_Base::size_type size_type
Definition: _string.h:138
_Self & assign(const _Self &__s)
Definition: _string.h:548

Referenced by basic_string< char, char_traits< char >, allocator< char > >::assign().

◆ _M_assign_dispatch() [2/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
293  _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter));
294  return *this;
295  }
GLsizei const GLvoid * pointer
Definition: glext.h:5848
#define _STLP_ITERATOR_CATEGORY(_It, _Tp)
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_Self & _M_appendT(_InputIter __first, _InputIter __last, const input_iterator_tag &)
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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 673 of file _string.h.

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

◆ _M_compare() [2/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() [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_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_compare() [5/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
#define min(a, b)
Definition: monoChain.cc:55
__kernel_ptrdiff_t ptrdiff_t
Definition: linux.h:247
#define compare

Referenced by basic_string< char, char_traits< char >, allocator< char > >::compare(), and operator<().

◆ _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  {
677  _STLP_FIX_LITERAL_BUG(__res)
678  _Traits::copy(__res, __f, __l - __f);
679  }
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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  }
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

Referenced by basic_string< char, char_traits< char >, allocator< char > >::_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  }
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _M_initialize_dispatch() [1/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  }
void _M_terminate_string()
Definition: _string.h:369
return __n
Definition: _algo.h:75
_STLP_MOVE_TO_STD_NAMESPACE void uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)

◆ _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  }
void _M_range_initializeT(_InputIter __f, _InputIter __l)
Definition: _string.h:330
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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  }
void _M_terminate_string()
Definition: _string.h:369
return __n
Definition: _algo.h:75
#define _STLP_PRIV
Definition: _dm.h:70
_ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)

Referenced by basic_string< char, char_traits< char >, allocator< char > >::basic_string().

◆ _M_initialize_dispatch() [4/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
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

Referenced by basic_string< char, char_traits< char >, allocator< char > >::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 }
GLsizei const GLvoid * pointer
Definition: glext.h:5848
#define __c
Definition: schilyio.h:209
_Base::size_type size_type
Definition: _string.h:138
_STLP_BEGIN_NAMESPACE _STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __ucopy(_InputIter __first, _InputIter __last, _OutputIter __result, _Distance *)
#define _STLP_PRIV
Definition: _dm.h:70
size_type __len
Definition: _string.h:306

Referenced by basic_string< char, char_traits< char >, allocator< char > >::insert().

◆ _M_insert_dispatch() [1/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); }
return __n
Definition: _algo.h:75
_Base::size_type size_type
Definition: _string.h:138
_Self & insert(size_type __pos, const _Self &__s)
Definition: _string.h:608

Referenced by basic_string< char, char_traits< char >, allocator< char > >::insert().

◆ _M_insert_dispatch() [2/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  }
allocator_type get_allocator() const
Definition: _string.h:154
#define _STLP_ITERATOR_CATEGORY(_It, _Tp)
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
basic_string< _CharT, _Traits, _Alloc > _Self
Definition: _string.h:128
void _M_insertT(iterator __p, _InputIter __first, _InputIter __last, const input_iterator_tag &)
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ _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  }
return __n
Definition: _algo.h:75
GLsizei const GLvoid * pointer
Definition: glext.h:5848
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
_Base::size_type size_type
Definition: _string.h:138
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
size_type __len
Definition: _string.h:306

Referenced by basic_string< char, char_traits< char >, allocator< char > >::_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  }
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
_Self & insert(size_type __pos, const _Self &__s)
Definition: _string.h:608

Referenced by basic_string< char, char_traits< char >, allocator< char > >::_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) {
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  }
return __n
Definition: _algo.h:75
GLsizei const GLvoid * pointer
Definition: glext.h:5848
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
void _M_insert_overflow(iterator __pos, _ForwardIter __first, _ForwardIter __last, size_type __n)
GLsizei GLsizei GLfloat distance
Definition: glext.h:11755
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
_Base::size_type size_type
Definition: _string.h:138
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
_STLP_MOVE_TO_STD_NAMESPACE void _STLP_CALL advance(_InputIterator &__i, _Distance __n)
void _M_copyT(_InputIterator __first, _InputIterator __last, pointer __result)

◆ _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  }
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

Referenced by basic_string< char, char_traits< char >, allocator< char > >::insert(), and basic_string< char, char_traits< char >, allocator< char > >::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  }
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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 _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  }
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_Self & _M_appendT(_InputIter __first, _InputIter __last, const input_iterator_tag &)
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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  {
125  this->_M_allocate_block(__n + 1);
126  this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start());
127  this->_M_terminate_string();
128  }
void _M_terminate_string()
Definition: _string.h:369
return __n
Definition: _algo.h:75
GLsizei GLsizei GLfloat distance
Definition: glext.h:11755
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
ptrdiff_t difference_type
Definition: _string.h:139
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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  }
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_Self & _M_appendT(_InputIter __first, _InputIter __last, const input_iterator_tag &)
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

Referenced by basic_string< char, char_traits< char >, allocator< char > >::_M_range_initializeT(), and basic_string< char, char_traits< char >, allocator< char > >::basic_string().

◆ _M_range_initialize() [4/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  {
324  this->_M_allocate_block(__n + 1);
325  this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start());
326  this->_M_terminate_string();
327  }
void _M_terminate_string()
Definition: _string.h:369
return __n
Definition: _algo.h:75
GLsizei GLsizei GLfloat distance
Definition: glext.h:11755
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
ptrdiff_t difference_type
Definition: _string.h:139
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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  }
void _M_terminate_string()
Definition: _string.h:369
return __n
Definition: _algo.h:75
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
__kernel_ptrdiff_t ptrdiff_t
Definition: linux.h:247
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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 
)
inlineprivate

Definition at line 131 of file _string_workaround.h.

131  {
133  }
#define _STLP_ITERATOR_CATEGORY(_It, _Tp)
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
void _M_range_initialize(_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
Definition: _string.h:313
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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 
)
inline

Definition at line 330 of file _string.h.

330  {
332  }
#define _STLP_ITERATOR_CATEGORY(_It, _Tp)
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
void _M_range_initialize(_InputIter __f, _InputIter __l, const input_iterator_tag &__tag)
Definition: _string.h:313
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

Referenced by basic_string< char, char_traits< char >, allocator< char > >::_M_initialize_dispatch().

◆ _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

Definition at line 551 of file _string_workaround.h.

552  {
555  _Base::_M_replace(__first, __last, __f, __l, __self_ref);
556  return *this;
557  }
_STLP_PRIVATE const _CharT const _CharT bool __self_ref
Definition: _string.h:671
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

Referenced by basic_string< char, char_traits< char >, allocator< char > >::_M_replace_dispatch(), and basic_string< char, char_traits< char >, allocator< char > >::replace().

◆ _M_replace_dispatch() [1/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  }
return __n
Definition: _algo.h:75
_Self & replace(size_type __pos, size_type __n, const _Self &__s)
Definition: _string.h:813
_Base::size_type size_type
Definition: _string.h:138
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

Referenced by basic_string< char, char_traits< char >, allocator< char > >::replace().

◆ _M_replace_dispatch() [2/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  }
allocator_type get_allocator() const
Definition: _string.h:154
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
_Self & _M_replace(iterator __first, iterator __last, const _CharT *__f, const _CharT *__l, bool __self_ref)
basic_string< _CharT, _Traits, _Alloc > _Self
Definition: _string.h:128
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ _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 }
return __n
Definition: _algo.h:75
GLsizei const GLvoid * pointer
Definition: glext.h:5848
_STLP_BEGIN_NAMESPACE _STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __ucopy(_InputIter __first, _InputIter __last, _OutputIter __result, _Distance *)
#define _STLP_PRIV
Definition: _dm.h:70

Referenced by basic_string< char, char_traits< char >, allocator< char > >::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>
_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  }
static void append(struct dump_context *dc, const void *data, unsigned size)
Definition: minidump.c:380

◆ append() [2/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  }
return __n
Definition: _algo.h:75
static void append(struct dump_context *dc, const void *data, unsigned size)
Definition: minidump.c:380

◆ append() [3/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  }
return __n
Definition: _algo.h:75
static void append(struct dump_context *dc, const void *data, unsigned size)
Definition: minidump.c:380
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ append() [4/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  }
static void append(struct dump_context *dc, const void *data, unsigned size)
Definition: minidump.c:380
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ append() [5/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  {
185  return *this;
186  }
return __n
Definition: _algo.h:75
static void append(struct dump_context *dc, const void *data, unsigned size)
Definition: minidump.c:380
#define __c
Definition: schilyio.h:209

◆ append() [6/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  }
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
_Self & _M_append_dispatch(_Integer __n, _Integer __x, const __true_type &)

◆ append() [7/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  {
201  return *this;
202  }
static void append(struct dump_context *dc, const void *data, unsigned size)
Definition: minidump.c:380
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ append() [8/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  }
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75
size_type capacity() const
Definition: _string.h:418
_Base _M_non_dbg_impl
Definition: _string.h:70
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_Base::size_type size_type
Definition: _string.h:138
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ append() [9/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  }
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75
size_type capacity() const
Definition: _string.h:418
_Base _M_non_dbg_impl
Definition: _string.h:70
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
_Base::size_type size_type
Definition: _string.h:138
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ append() [10/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  }
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75
size_type capacity() const
Definition: _string.h:418
_Base _M_non_dbg_impl
Definition: _string.h:70
_Base::size_type size_type
Definition: _string.h:138

◆ append() [11/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  }
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75
return __n
Definition: _algo.h:75
size_type capacity() const
Definition: _string.h:418
_Base _M_non_dbg_impl
Definition: _string.h:70
_Base::size_type size_type
Definition: _string.h:138

◆ append() [12/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  }
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75
return __n
Definition: _algo.h:75
size_type capacity() const
Definition: _string.h:418
_Base _M_non_dbg_impl
Definition: _string.h:70
_Base::size_type size_type
Definition: _string.h:138
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ append() [13/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  }
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75
size_type capacity() const
Definition: _string.h:418
_Base _M_non_dbg_impl
Definition: _string.h:70
_Base::size_type size_type
Definition: _string.h:138
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ append() [14/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  }
void _Compare_Capacity(size_type __old_capacity)
Definition: _string.h:75
return __n
Definition: _algo.h:75
size_type capacity() const
Definition: _string.h:418
_Base _M_non_dbg_impl
Definition: _string.h:70
#define __c
Definition: schilyio.h:209
_Base::size_type size_type
Definition: _string.h:138

◆ append() [15/20]

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

◆ append() [16/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()); }
_Self & _M_append(const _CharT *__first, const _CharT *__last)
Definition: _string.c:196

◆ append() [17/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  }
return __n
Definition: _algo.h:75
_Self & _M_append(const _CharT *__first, const _CharT *__last)
Definition: _string.c:196
#define min(a, b)
Definition: monoChain.cc:55

◆ append() [18/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); }
return __n
Definition: _algo.h:75
_Self & _M_append(const _CharT *__first, const _CharT *__last)
Definition: _string.c:196
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ append() [19/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)); }
_Self & _M_append(const _CharT *__first, const _CharT *__last)
Definition: _string.c:196
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ append() [20/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
return __n
Definition: _algo.h:75
#define __c
Definition: schilyio.h:209
size_type size() const
Definition: _string.h:400
iterator end()
Definition: _string.h:386
#define _STLP_PRIV
Definition: _dm.h:70
_ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)
size_type max_size() const
Definition: _string.h:402

◆ assign() [1/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() [2/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  }
return __n
Definition: _algo.h:75

◆ assign() [3/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  }
return __n
Definition: _algo.h:75
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ assign() [4/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  }
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ assign() [5/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  }
return __n
Definition: _algo.h:75
#define __c
Definition: schilyio.h:209

◆ assign() [6/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  }
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
_Self & _M_assign_dispatch(_Integer __n, _Integer __x, const __true_type &)

◆ assign() [7/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  }
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ assign() [8/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  {
325  _Invalidate_all();
326  _M_non_dbg_impl.assign(__s._M_non_dbg_impl);
327  return *this;
328  }
_Base _M_non_dbg_impl
Definition: _string.h:70
void _Invalidate_all()
Definition: _string.h:73

◆ assign() [9/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()) {
332  _Invalidate_all();
333  }
334  _M_non_dbg_impl.assign(__s._M_non_dbg_impl, __pos, __n);
335  return *this;
336  }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70
void _Invalidate_all()
Definition: _string.h:73

◆ 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)
341  _Invalidate_all();
342  _M_non_dbg_impl.assign(__s, __s + __n);
343  return *this;
344  }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70
void _Invalidate_all()
Definition: _string.h:73
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ assign() [11/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)
349  _Invalidate_all();
350  _M_non_dbg_impl.assign(__s);
351  return *this;
352  }
_Base _M_non_dbg_impl
Definition: _string.h:70
void _Invalidate_all()
Definition: _string.h:73
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
Definition: _debug.h:439

◆ assign() [12/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  {
355  _Invalidate_all();
356  _M_non_dbg_impl.assign(__n, __c);
357  return *this;
358  }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70
#define __c
Definition: schilyio.h:209
void _Invalidate_all()
Definition: _string.h:73

◆ assign() [13/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))
376  _Invalidate_all();
377  _M_non_dbg_impl.assign(__f, __l);
378  return *this;
379  }
_Base _M_non_dbg_impl
Definition: _string.h:70
void _Invalidate_all()
Definition: _string.h:73
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ assign() [14/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))
382  _Invalidate_all();
383  _M_non_dbg_impl.assign(__f._M_iterator, __l._M_iterator);
384  return *this;
385  }
_Base _M_non_dbg_impl
Definition: _string.h:70
void _Invalidate_all()
Definition: _string.h:73
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ assign() [15/20]

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

◆ 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 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  }
return __n
Definition: _algo.h:75
_Self & _M_assign(const _CharT *__f, const _CharT *__l)
Definition: _string.c:242
#define min(a, b)
Definition: monoChain.cc:55

◆ assign() [17/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); }
return __n
Definition: _algo.h:75
_Self & _M_assign(const _CharT *__f, const _CharT *__l)
Definition: _string.c:242
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ assign() [18/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)); }
_Self & _M_assign(const _CharT *__f, const _CharT *__l)
Definition: _string.c:242
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ assign() [19/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 }
return __n
Definition: _algo.h:75
size_type capacity() const
Definition: _string.h:418
iterator begin()
Definition: _string.h:385
#define __c
Definition: schilyio.h:209
size_type size() const
Definition: _string.h:400
iterator end()
Definition: _string.h:386
void swap(_Self &__s)
Definition: _string.h:942
_Self & append(const _CharT *__first, const _CharT *__last)
Definition: _string.h:509
basic_string< _CharT, _Traits, _Alloc > _Self
Definition: _string.h:128
_Self & erase(size_type __pos=0, size_type __n=npos)
Definition: _string.h:788

◆ assign() [20/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
_STLP_PRIVATE iterator const _CharT * __f
Definition: _string.h:889
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301
_STLP_PRIVATE iterator const _CharT const _CharT * __l
Definition: _string.h:889

◆ at() [1/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); }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ 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); }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ 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  }
return __n
Definition: _algo.h:75
size_type size() const
Definition: _string.h:400

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

◆ at() [4/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  }
return __n
Definition: _algo.h:75
size_type size() const
Definition: _string.h:400

◆ begin() [1/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()); }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
value_type * iterator
Definition: _string.h:143

◆ begin() [2/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()); }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
const value_type * const_iterator
Definition: _string.h:142

◆ begin() [3/4]

◆ begin() [4/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(); }

◆ c_str() [1/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(); }
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ 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 949 of file _string.h.

949 { return this->_M_Start(); }

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

◆ capacity() [1/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(); }
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ capacity() [2/2]

◆ clear() [1/2]

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

Definition at line 213 of file _string.h.

213  {
214  _Invalidate_all();
215  _M_non_dbg_impl.clear();
216  }
_Base _M_non_dbg_impl
Definition: _string.h:70
void _Invalidate_all()
Definition: _string.h:73

◆ clear() [2/2]

template<class _CharT, class _Traits, class _Alloc>
void basic_string< _CharT, _Traits, _Alloc >::clear ( void  )
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(), and operator >>().

◆ compare() [1/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); }
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ compare() [2/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); }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ compare() [3/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); }
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ compare() [4/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  }
_Base _M_non_dbg_impl
Definition: _string.h:70
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ 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  }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ compare() [6/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  }
_Base _M_non_dbg_impl
Definition: _string.h:70
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ compare() [7/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()); }
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
Definition: _string.h:1071

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

◆ compare() [8/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  }
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
Definition: _string.h:1071
size_type size() const
Definition: _string.h:400
#define min(a, b)
Definition: monoChain.cc:55

◆ compare() [9/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  }
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
Definition: _string.h:1071
size_type size() const
Definition: _string.h:400
#define min(a, b)
Definition: monoChain.cc:55

◆ compare() [10/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
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ compare() [11/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  }
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
Definition: _string.h:1071
size_type size() const
Definition: _string.h:400
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
#define min(a, b)
Definition: monoChain.cc:55
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ compare() [12/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  }
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
Definition: _string.h:1071
size_type size() const
Definition: _string.h:400
#define min(a, b)
Definition: monoChain.cc:55
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ 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 689 of file _string.h.

690  { return _M_non_dbg_impl.copy(__s, __n, __pos); }
return __n
Definition: _algo.h:75
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ 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 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  }
return __n
Definition: _algo.h:75
size_type size() const
Definition: _string.h:400
_Base::size_type size_type
Definition: _string.h:138
size_type __len
Definition: _string.h:306
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
#define min(a, b)
Definition: monoChain.cc:55
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

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

◆ data() [1/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(); }
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ data() [2/2]

◆ empty() [1/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(); }
_Base _M_non_dbg_impl
Definition: _string.h:70

◆ empty() [2/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 basic_string< char, char_traits< char >, allocator< char > >::clear(), operator >>(), and operator>>().

◆ end() [1/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()); }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
value_type * iterator
Definition: _string.h:143

◆ end() [2/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.

186 { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); }
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
const value_type * const_iterator
Definition: _string.h:142

◆ end() [3/4]

◆ end() [4/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(); }

◆ erase() [1/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  }
return __n
Definition: _algo.h:75

◆ erase() [2/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  {
461  _STLP_FIX_LITERAL_BUG(__pos)
462  return _Base::erase(__pos);
463  }
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ 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  }
_STLP_PRIVATE const _CharT * __first
Definition: _string.h:671
_STLP_PRIVATE const _CharT const _CharT * __last
Definition: _string.h:671
#define _STLP_FIX_LITERAL_BUG(__x)
Definition: features.h:301

◆ erase() [4/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  }
return __n
Definition: _algo.h:75
iterator begin()
Definition: _string.h:385
_Base _M_non_dbg_impl
Definition: _string.h:70
size_type size() const
Definition: _string.h:400
iterator end()
Definition: _string.h:386
void _Invalidate_iterators(const iterator &__f, const iterator &__l)
Definition: _string.h:82

◆ erase() [5/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
_STLP_PRIV __owned_list _M_iter_list
Definition: _string.h:71
_Base _M_non_dbg_impl
Definition: _string.h:70
iterator end()
Definition: _string.h:386
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_DEBUG_CHECK(expr)
Definition: _debug.h:440
void _Invalidate_iterators(const iterator &__f, const iterator &__l)
Definition: _string.h:82
value_type * iterator
Definition: _string.h:143

◆ erase() [6/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()))
506