18#ifndef _STLP_DBG_STRING_H
19#define _STLP_DBG_STRING_H
21#ifndef _STLP_DBG_ITERATOR_H
27#define _STLP_NON_DBG_STRING_NAME _STLP_NON_DBG_NAME(str)
28#define _STLP_NON_DBG_STRING _STLP_PRIV _STLP_NON_DBG_STRING_NAME <_CharT, _Traits, _Alloc>
30#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS)
31template <
class _CharT,
class _Traits,
class _Alloc>
35template <
class _CharT,
class _Traits,
class _Alloc>
41template <
class _CharT,
class _Traits,
class _Alloc>
49#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (basic_string)
76 if (this->
capacity() > __old_capacity) {
120#if !defined (_STLP_NO_MOVE_SEMANTIC)
124# if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
125 src.get()._M_iter_list._Invalidate_all();
132#if !defined (_STLP_MEMBER_TEMPLATES)
144 template <
class _InputIterator>
150# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS)
151 template <
class _InputIterator>
189 const_reverse_iterator
rbegin()
const {
return const_reverse_iterator(
end()); }
191 const_reverse_iterator
rend()
const {
return const_reverse_iterator(
begin()); }
242#if defined (_STLP_MEMBER_TEMPLATES)
243 template <
class _InputIter>
253#if !defined (_STLP_MEMBER_TEMPLATES) || \
254 !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS)
331 if (__pos < __s.
size()) {
360#if defined(_STLP_MEMBER_TEMPLATES)
361 template <
class _InputIter>
371#if !defined (_STLP_MEMBER_TEMPLATES) || \
372 !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS)
416 return insert(__pos, __s, _Traits::length(__s));
441#if defined (_STLP_MEMBER_TEMPLATES)
442 template <
class _InputIter>
454#if !defined (_STLP_MEMBER_TEMPLATES)
465#if !defined (_STLP_MEMBER_TEMPLATES) || !defined (_STLP_NO_METHOD_SPECIALIZATION)
471# if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
481# if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL)
492 if (__pos <
size()) {
591#if defined (_STLP_MEMBER_TEMPLATES)
592 template <
class _InputIter>
594 _InputIter
__f, _InputIter
__l) {
606#if !defined (_STLP_MEMBER_TEMPLATES)
608 const _CharT*
__f,
const _CharT*
__l) {
619#if !defined (_STLP_MEMBER_TEMPLATES) || !defined (_STLP_NO_METHOD_SPECIALIZATION)
626 __f._M_iterator,
__l._M_iterator);
636 __f._M_iterator,
__l._M_iterator);
647#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER)
648 void _M_swap_workaround(
_Self& __x) {
swap(__x); }
674 const _CharT* __f2,
const _CharT* __l2)
675 {
return _Base::_M_compare(__f1, __l1, __f2, __l2); }
677 const _CharT* __f2,
const _CharT* __l2)
678 {
return _Base::_M_compare(__f1._M_iterator, __l1._M_iterator, __f2, __l2); }
681 {
return _Base::_M_compare(__f1, __l1, __f2._M_iterator, __l2._M_iterator); }
684 {
return _Base::_M_compare(__f1._M_iterator, __l1._M_iterator, __f2._M_iterator, __l2._M_iterator); }
790#if defined (_STLP_USE_TEMPLATE_EXPRESSION)
796#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)
801# if defined (_STLP_HAS_WCHAR_T)
809#undef _STLP_NON_DBG_STRING
810#undef _STLP_NON_DBG_STRING_NAME
812#if defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96)
813template <
class _CharT,
class _Traits,
class _Alloc>
817#if defined (basic_string)
#define random_access_iterator_tag
#define _STLP_DEFAULT_CONSTRUCTED(_TTp)
#define _STLP_DEBUG_CHECK(expr)
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
_STLP_MOVE_TO_PRIV_NAMESPACE const _InputIterator const input_iterator_tag &_InputIterator __it(__first)
void get(int argc, const char *argv[])
size_type find_last_of(const _CharT *__s, size_type __pos, size_type __n) const
iterator erase(iterator __f, iterator __l)
_Self & insert(size_type __pos, size_type __n, _CharT __c)
void insert(iterator __p, iterator __f, iterator __l)
_STLP_NO_MEM_T_STRING_BASE _Base
int compare(const _CharT *__s) const
size_type find(_CharT __c, size_type __pos) const
const_iterator begin() const
size_type find_first_of(const _Self &__s, size_type __pos=0) const
static int _STLP_CALL _M_compare(const_iterator __f1, const_iterator __l1, const_iterator __f2, const_iterator __l2)
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const _CharT *__f2, const _CharT *__l2)
_Self & replace(iterator __first, iterator __last, iterator __f, iterator __l)
static int _STLP_CALL _M_compare(const_iterator __f1, const_iterator __l1, const _CharT *__f2, const _CharT *__l2)
size_type find(_CharT __c) const
basic_string(const _CharT *__f, const _CharT *__l, const allocator_type &__a=allocator_type())
_Self & append(const _Self &__s, size_type __pos, size_type __n)
_Self & replace(iterator __first, iterator __last, const _CharT *__f, const _CharT *__l)
basic_string(const _CharT *__s, size_type __n, const allocator_type &__a=allocator_type())
static int _STLP_CALL _M_compare(const _CharT *__f1, const _CharT *__l1, const_iterator __f2, const_iterator __l2)
_Self & erase(size_type __pos=0, size_type __n=npos)
const_reference at(size_type __n) const
void _Invalidate_iterators(const iterator &__f, const iterator &__l)
size_type rfind(_CharT __c, size_type __pos=npos) const
int compare(size_type __pos1, size_type __n1, const _CharT *__s, size_type __n2) const
_Self & operator=(const _Self &__s)
_Self & replace(size_type __pos, size_type __n, const _Self &__s)
size_type find_first_not_of(const _Self &__s, size_type __pos=0) const
_Self & assign(const _CharT *__f, const _CharT *__l)
basic_string(const_iterator __f, const_iterator __l, const allocator_type &__a=allocator_type())
size_type find_first_of(_CharT __c, size_type __pos=0) const
_Self & replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
iterator erase(iterator __pos)
basic_string(const allocator_type &__a=allocator_type())
int compare(size_type __pos, size_type __n, const _Self &__s) const
_STLP_PRIV __owned_list _M_iter_list
_Base::size_type size_type
size_type find_last_not_of(const _Self &__s, size_type __pos=npos) const
_Self substr(size_type __pos=0, size_type __n=npos) const
const _CharT * c_str() const
_Self & replace(size_type __pos, size_type __n1, const _CharT *__s)
size_type find_last_not_of(_CharT __c, size_type __pos=npos) const
_Self & assign(const _CharT *__s, size_type __n)
const value_type * const_iterator
basic_string(const _Base &__x)
size_type find(const _Self &__s, size_type __pos=0) const
_STLP_PRIV __construct_checker< _STLP_NON_DBG_STRING > _ConstructCheck
const_reverse_iterator rbegin() const
void insert(iterator __p, const_iterator __f, const_iterator __l)
_Self & append(const_iterator __f, const_iterator __l)
_Self & assign(const _Self &__s)
void resize(size_type __n)
_Self & replace(size_type __pos, size_type __n1, const _CharT *__s, size_type __n2)
_Self & insert(size_type __pos, const _CharT *__s)
_STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS
size_type capacity() const
size_type find(const _CharT *__s, size_type __pos, size_type __n) const
_IsPOD< _CharT >::_Type _Char_Is_POD
size_type copy(_CharT *__s, size_type __n, size_type __pos=0) const
_Self & assign(const _Self &__s, size_type __pos, size_type __n)
basic_string(const _Self &__s, size_type __pos, size_type __n=npos, const allocator_type &__a=allocator_type())
size_type find_first_not_of(const _CharT *__s, size_type __pos, size_type __n) const
_Self & replace(iterator __f, iterator __l, const _CharT *__s, size_type __n)
basic_string(const _CharT *__s, const allocator_type &__a=allocator_type())
_STLP_PRIVATE iterator const _CharT const _CharT * __l
_Self & replace(iterator __f, iterator __l, const _CharT *__s)
basic_string(_Reserve_t __r, size_t __n, const allocator_type &__a=allocator_type())
size_type find_last_of(const _CharT *__s, size_type __pos=npos) const
int compare(const _Self &__s) const
size_type find_first_not_of(_CharT __c, size_type __pos=0) const
const_reverse_iterator rend() const
_Self & operator=(const _CharT *__s)
void insert(iterator __p, const _CharT *__f, const _CharT *__l)
_Self & assign(const_iterator __f, const_iterator __l)
size_type find_last_of(_CharT __c, size_type __pos=npos) const
reverse_iterator rbegin()
void _Invalidate_iterator(const iterator &__it)
const_reference operator[](size_type __n) const
size_type find_first_of(const _CharT *__s, size_type __pos=0) const
void resize(size_type __n, _CharT __c)
size_type rfind(const _Self &__s, size_type __pos=npos) const
void insert(iterator __p, size_t __n, _CharT __c)
_Self & insert(size_type __pos, const _Self &__s)
reference operator[](size_type __n)
_Self & operator+=(_CharT __c)
_Self & assign(size_type __n, _CharT __c)
_Self & append(size_type __n, _CharT __c)
_Self & append(const _CharT *__f, const _CharT *__l)
_Self & operator+=(const _Self &__s)
_Self & operator=(_CharT __c)
const_iterator end() const
int compare(size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2) const
int compare(size_type __pos, size_type __n, const _CharT *__s) const
_STLP_PRIVATE const _CharT const _CharT * __last
_Self & replace(size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2)
_Self & assign(const _CharT *__s)
_Self & replace(iterator __f, iterator __l, const _Self &__s)
_Self & insert(size_type __pos, const _CharT *__s, size_type __n)
_Base::allocator_type allocator_type
basic_string(__move_source< _Self > src)
size_type rfind(const _CharT *__s, size_type __pos, size_type __n) const
_Self & append(const _CharT *__first, const _CharT *__last)
_STLP_PRIV _String_reserve_t _Reserve_t
size_type find_last_not_of(const _CharT *__s, size_type __pos, size_type __n) const
_Self & append(const _Self &__s)
iterator insert(iterator __p, _CharT __c)
size_type find(const _CharT *__s, size_type __pos=0) const
_Self & insert(size_type __pos, const _Self &__s, size_type __beg, size_type __n)
reference at(size_type __n)
void _Compare_Capacity(size_type __old_capacity)
_STLP_NON_DBG_STRING _Base
_STLP_PRIVATE const _CharT * __first
_Self & append(const _CharT *__s)
const value_type & const_reference
_Self & replace(iterator __f, iterator __l, size_type __n, _CharT __c)
size_type find_last_not_of(const _CharT *__s, size_type __pos=npos) const
_STLP_PRIVATE iterator const _CharT * __f
size_type find_first_of(const _CharT *__s, size_type __pos, size_type __n) const
allocator_type get_allocator() const
basic_string(const _Self &__s)
const _CharT * data() const
void push_back(_CharT __c)
size_type find_last_of(const _Self &__s, size_type __pos=npos) const
_Self & append(const _CharT *__s, size_type __n)
basic_string< _CharT, _Traits, _Alloc > _Self
void reserve(size_type __s=0)
size_type rfind(const _CharT *__s, size_type __pos=npos) const
_Self & replace(iterator __first, iterator __last, const_iterator __f, const_iterator __l)
size_type find_first_not_of(const _CharT *__s, size_type __pos=0) const
basic_string(size_type __n, _CharT __c, const allocator_type &__a=allocator_type())
_Self & operator+=(const _CharT *__s)
_Iterator _Non_Dbg_iter(_Iterator __it)
bool _Dereferenceable(const _Iterator &__it)
#define _STLP_NON_DBG_STRING
#define _STLP_MOVE_TO_STD_NAMESPACE
#define __IMPORT_CONTAINER_TYPEDEFS(_Super)
#define _STLP_ALLOCATOR_TYPE_DFL
#define _STLP_FIX_LITERAL_BUG(__x)
#define _STLP_EXPORT_TEMPLATE_CLASS
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
#define _STLP_MOVE_TO_PRIV_NAMESPACE