16#ifndef _STLP_STRING_SUM_H
17#define _STLP_STRING_SUM_H
24template <
class _CharT>
31 size_t size()
const {
return 1; }
43template <
class _CharT>
62template <
class _CharT,
class _Traits,
class _Alloc>
83template <
class _CharT,
class _Traits,
class _Alloc,
84 class _Left,
class _Right,
85 class _StorageDirection>
145 template <
class _InputIter>
255 {
return _rhs._M_get_storage(*
this, _StorageDirection()); }
257 template <
class _Lhs,
class _Rhs,
class _StorageDir>
260 {
return _lhs._M_get_storage(__ref); }
262 template <
class _Lhs,
class _Rhs,
class _StorageDir>
265 {
return _rhs._M_get_storage(__ref); }
267 template <
class _Lhs,
class _Rhs,
class _StorageDir>
275 template <
class _Lhs,
class _Rhs,
class _StorageDir>
278 {
return _lhs._M_get_storage(__ref, __do_init); }
280 template <
class _Lhs,
class _Rhs,
class _StorageDir>
283 {
return _rhs._M_get_storage(__ref, __do_init); }
285 template <
class _Lhs,
class _Rhs,
class _StorageDir>
287 bool __do_init)
const
298template <
class _CharT,
class _Traits,
class _Alloc,
299 class _Lh1,
class _Rh1,
class _StoreDir1,
300 class _Lh2,
class _Rh2,
class _StoreDir2>
313template <
class _CharT,
class _Traits,
class _Alloc,
314 class _Lh1,
class _Rh1,
class _StoreDir1,
315 class _Lh2,
class _Rh2,
class _StoreDir2>
321template <
class _CharT,
class _Traits,
class _Alloc,
322 class _Lh1,
class _Rh1,
class _StoreDir1,
323 class _Lh2,
class _Rh2,
class _StoreDir2>
329#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE
331template <
class _CharT,
class _Traits,
class _Alloc,
332 class _Lh1,
class _Rh1,
class _StoreDir1,
333 class _Lh2,
class _Rh2,
class _StoreDir2>
337{
return !(__lhs == __rhs); }
339template <
class _CharT,
class _Traits,
class _Alloc,
340 class _Lh1,
class _Rh1,
class _StoreDir1,
341 class _Lh2,
class _Rh2,
class _StoreDir2>
345{
return __rhs < __lhs; }
347template <
class _CharT,
class _Traits,
class _Alloc,
348 class _Lh1,
class _Rh1,
class _StoreDir1,
349 class _Lh2,
class _Rh2,
class _StoreDir2>
353{
return !(__rhs < __lhs); }
355template <
class _CharT,
class _Traits,
class _Alloc,
356 class _Lh1,
class _Rh1,
class _StoreDir1,
357 class _Lh2,
class _Rh2,
class _StoreDir2>
361{
return !(__lhs < __rhs); }
371template <
class _CharT,
class _Traits,
class _Alloc>
379 template <
class _Left,
class _Right,
class _StorageDir>
387 template <
class _Left,
class _Right,
class _StorageDir>
389 bool __do_init)
const {
395 template <
class _Left,
class _Right,
class _StorageDir>
401 size_t size()
const {
return 0; }
_STLP_INLINE_LOOP _InputIter __last
_STLP_INLINE_LOOP _InputIter const _Tp & __val
bool _STLP_CALL operator!=(const allocator< _T1 > &, const allocator< _T2 > &) _STLP_NOTHROW
bool _STLP_CALL operator>(const _Bit_iterator_base &__x, const _Bit_iterator_base &__y)
bool _STLP_CALL operator>=(const _Bit_iterator_base &__x, const _Bit_iterator_base &__y)
bool _STLP_CALL operator<=(const _Bit_iterator_base &__x, const _Bit_iterator_base &__y)
bool _STLP_CALL operator==(const __bstr_sum< _CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1 > &__lhs, const __bstr_sum< _CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2 > &__rhs)
__bstr_sum< _CharT, _Traits, _Alloc, __bstr_sum< _CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1 >, __bstr_sum< _CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2 >, __on_right > _STLP_CALL operator+(const __bstr_sum< _CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1 > &__lhs, const __bstr_sum< _CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2 > &__rhs)
bool _STLP_CALL operator<(const __bstr_sum< _CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1 > &__lhs, const __bstr_sum< _CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2 > &__rhs)
size_type find_first_not_of(_CharT __c, size_type __pos=0) const
size_type find_first_not_of(const _BString &__s, size_type __pos=0) const
_BString & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir > const &__ref, __on_right const &)
_BString const & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir > const &__ref, bool __do_init, __on_left const &) const
size_type find_last_not_of(_CharT __c, size_type __pos=_BString::npos) const
int compare(size_type __pos1, size_type __n1, const _CharT *__s) const
size_type find_last_of(const _CharT *__s, size_type __pos, size_type __n) const
size_type rfind(const _BString &__s, size_type __pos=_BString::npos) const
allocator_type get_allocator() const
_BString & insert(size_type __pos, const _BString &__s, size_type __beg, size_type __n)
__bstr_sum< _CharT, _Traits, _Alloc, _Self, __cstr_wrapper< _CharT >, __on_left > _CStrOnLeft
_BString & replace(size_type __pos1, size_type __n1, const _BString &__s, size_type __pos2, size_type __n2)
size_type rfind(_CharT __c, size_type __pos=_BString::npos) const
_BString & assign(const _CharT *__s)
size_type capacity() const
_BString & replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c)
const_reverse_iterator rend() const
_BString & erase(size_type __pos=0, size_type __n=_BString::npos)
size_type find_first_not_of(const _CharT *__s, size_type __pos, size_type __n) const
_BString & append(const _BString &__s, size_type __pos, size_type __n)
_BStrOnLeft operator+=(const _BString &__s)
_BString & _M_get_storage()
size_type copy(_CharT *__s, size_type __n, size_type __pos=0) const
_Left const & getLhs() const
size_type find_first_of(const _BString &__s, size_type __pos=0) const
const _CharT * c_str() const
size_type find(_CharT __c, size_type __pos=0) const
_BString::allocator_type allocator_type
_BString & insert(size_type __pos, const _BString &__s)
const _CharT * data() const
_BString & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir > const &__ref)
int compare(const _CharT *__s) const
__bstr_sum< _CharT, _Traits, _Alloc, _Self, __bstr_wrapper< _CharT, _Traits, _Alloc >, __on_left > _BStrOnLeft
__bstr_sum(_Left const &lhs, _Right const &rhs)
int compare(size_type __pos1, size_type __n1, const _CharT *__s, size_type __n2) const
int compare(size_type __pos1, size_type __n1, const _Self &__s, size_type __pos2, size_type __n2) const
const_reverse_iterator rbegin() const
_BString const & _M_get_storage(bool __do_init=true) const
const_reference at(size_type __n) const
basic_string< _CharT, _Traits, _Alloc > _BString
size_type find_last_not_of(const _CharT *__s, size_type __pos=_BString::npos) const
int compare(const _BString &__s) const
_BString::const_iterator const_iterator
_BString::const_reference const_reference
_BString const & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir > const &__ref, bool __do_init, __on_right const &) const
_BString & assign(const _BString &__s, size_type __pos, size_type __n)
size_type find_first_of(const _CharT *__s, size_type __pos, size_type __n) const
_BString::size_type size_type
size_type find_last_of(const _CharT *__s, size_type __pos=_BString::npos) const
_BString & assign(const _CharT *__s, size_type __n)
size_type find_last_not_of(const _BString &__s, size_type __pos=_BString::npos) const
_BString & assign(size_type __n, _CharT __c)
_BString & replace(size_type __pos, size_type __n1, const _CharT *__s)
const_iterator end() const
size_type rfind(const _CharT *__s, size_type __pos=_BString::npos) const
size_type find_first_of(_CharT __c, size_type __pos=0) const
size_type find(const _CharT *__s, size_type __pos=0) const
_BString & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir > const &__ref, __on_left const &)
size_type find_last_of(_CharT __c, size_type __pos=_BString::npos) const
__bstr_sum< _CharT, _Traits, _Alloc, _Self, __char_wrapper< _CharT >, __on_left > _CharOnLeft
_BString & assign(const _BString &__s)
_BString substr(size_type __pos=0, size_type __n=_BString::npos) const
__bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection > _Self
_BString & insert(size_type __pos, const _CharT *__s, size_type __n)
const_reference operator[](size_t __n) const
_BString & append(_InputIter __first, _InputIter __last)
_BString & append(size_type __n, _CharT __c)
_BString & insert(size_type __pos, size_type __n, _CharT __c)
_CStrOnLeft append(const _CharT *__s)
size_type find_first_not_of(const _CharT *__s, size_type __pos=0) const
size_type find(const _CharT *__s, size_type __pos, size_type __n) const
size_type find_last_not_of(const _CharT *__s, size_type __pos, size_type __n) const
size_type find(const _BString &__s, size_type __pos=0) const
int compare(size_type __pos1, size_type __n1, const _Self &__s) const
const_iterator begin() const
_BString::const_reverse_iterator const_reverse_iterator
size_type find_first_of(const _CharT *__s, size_type __pos=0) const
_BString & insert(size_type __pos, const _CharT *__s)
_CStrOnLeft append(const _CharT *__s, size_type __n)
size_type rfind(const _CharT *__s, size_type __pos, size_type __n) const
_BString const & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir > const &__ref, bool __do_init) const
_BString & replace(size_type __pos, size_type __n1, const _CharT *__s, size_type __n2)
size_type find_last_of(const _BString &__s, size_type __pos=_BString::npos) const
_Right const & getRhs() const
_BStrOnLeft append(const _BString &__s)
_BString & replace(size_type __pos, size_type __n, const _BString &__s)
size_type find_first_of(const _Self &__s, size_type __pos=0) const
_Self & erase(size_type __pos=0, size_type __n=npos)
const_reference at(size_type __n) const
_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
_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
const value_type * const_iterator
size_type find(const _Self &__s, size_type __pos=0) const
_Self & assign(const _Self &__s)
size_type copy(_CharT *__s, size_type __n, size_type __pos=0) const
int compare(const _Self &__s) const
reverse_iterator rbegin()
size_type rfind(const _Self &__s, size_type __pos=npos) const
size_type max_size() const
_Self & insert(size_type __pos, const _Self &__s)
_Base::allocator_type allocator_type
_Self & append(const _CharT *__first, const _CharT *__last)
const value_type & const_reference
allocator_type get_allocator() const
const _CharT * data() const
size_type find_last_of(const _Self &__s, size_type __pos=npos) const
#define _STLP_MUTABLE(type, x)
#define _STLP_MOVE_TO_STD_NAMESPACE
#define __STATIC_CAST(__x, __y)
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
#define _STLP_MOVE_TO_PRIV_NAMESPACE
_BString const & b_str() const
__bstr_wrapper(_BString const &__s)
basic_string< _CharT, _Traits, _Alloc > _BString
const _CharT & const_reference
const_reference operator[](size_t __n) const
const _CharT & const_reference
const_reference operator[](size_t __n) const
__char_wrapper(_CharT __val)
const_reference operator[](size_t __n) const
const _CharT * c_str() const
__cstr_wrapper(const _CharT *__cstr, size_t __size)
const _CharT & const_reference
_CharT const & operator[](size_t __n) const
_BString & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDir > const &__ref)
void _M_Init(__bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDir > const &__ref) const
__sum_storage_elem< _CharT, _Traits, _Alloc > _Self
basic_string< _CharT, _Traits, _Alloc > _M_storage
basic_string< _CharT, _Traits, _Alloc > _BString
_BString const & _M_get_storage(__bstr_sum< _CharT, _Traits, _Alloc, _Left, _Right, _StorageDir > const &__ref, bool __do_init) const
__sum_storage_elem(_Alloc __alloc)