ReactOS  0.4.13-dev-100-gc8611ae
_rope.h File Reference
#include <stl/_algobase.h>
#include <stl/_iosfwd.h>
#include <stl/_alloc.h>
#include <stl/_iterator.h>
#include <stl/_algo.h>
#include <stl/_function_base.h>
#include <stl/_numeric.h>
#include <stl/_hash_fun.h>
#include <stl/char_traits.h>
#include <stl/_threads.h>
#include <stl/_string_npos.h>
#include <stl/_rope.c>
Include dependency graph for _rope.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  rope< _CharT, _Alloc >
 
struct  _Rope_RopeConcatenation< _CharT, _Alloc >
 
struct  _Rope_RopeRep< _CharT, _Alloc >
 
struct  _Rope_RopeLeaf< _CharT, _Alloc >
 
struct  _Rope_RopeFunction< _CharT, _Alloc >
 
struct  _Rope_RopeSubstring< _CharT, _Alloc >
 
class  _Rope_iterator< _CharT, _Alloc >
 
class  _Rope_const_iterator< _CharT, _Alloc >
 
class  _Rope_char_ref_proxy< _CharT, _Alloc >
 
class  _Rope_char_ptr_proxy< _CharT, _Alloc >
 
struct  _BasicCharType< _CharT >
 
struct  _BasicCharType< char >
 
struct  _Rope_Concat_fn< _CharT, _Alloc >
 
class  char_producer< _CharT >
 
class  sequence_buffer< _Sequence, _Buf_sz >
 
class  _Rope_char_consumer< _CharT >
 
struct  _Rope_RopeRep< _CharT, _Alloc >
 
struct  _Rope_RopeLeaf< _CharT, _Alloc >
 
struct  _Rope_RopeConcatenation< _CharT, _Alloc >
 
struct  _Rope_RopeFunction< _CharT, _Alloc >
 
struct  _Rope_RopeSubstring< _CharT, _Alloc >
 
struct  _Rope_self_destruct_ptr< _CharT, _Alloc >
 
class  _Rope_char_ref_proxy< _CharT, _Alloc >
 
class  _Rope_char_ptr_proxy< _CharT, _Alloc >
 
class  _Rope_iterator_base< _CharT, _Alloc >
 
class  _Rope_iterator< _CharT, _Alloc >
 
class  _Rope_const_iterator< _CharT, _Alloc >
 
class  _Rope_iterator< _CharT, _Alloc >
 
class  rope< _CharT, _Alloc >
 
struct  hash< crope >
 

Macros

#define _STLP_CREATE_ALLOCATOR(__atype, __a, _Tp)   (_Alloc_traits<_Tp,__atype>::create_allocator(__a))
 
#define __ROPE_MAX_DEPTH   45
 
#define __ROPE_DEPTH_SIZE   46
 
#define _ROPE_SWAP_SPECIALIZATION(_CharT, __Alloc)
 
#define __exponentiate_threshold   size_t(32)
 

Typedefs

typedef rope< char, allocator< char > > crope
 

Functions

template<class _CharT , class _Alloc >
rope< _CharT, _Alloc__identity_element (_Rope_Concat_fn< _CharT, _Alloc >)
 
template<class _CharT >
_STLP_MOVE_TO_STD_NAMESPACE void _S_construct_null_aux (_CharT *__p, const __true_type &)
 
template<class _CharT >
void _S_construct_null_aux (_CharT *__p, const __false_type &)
 
template<class _CharT >
void _S_construct_null (_CharT *__p)
 
template<class _CharT , class _Alloc , class _CharConsumer >
bool _S_apply_to_pieces (_CharConsumer &__c, _Rope_RopeRep< _CharT, _Alloc > *__r, size_t __begin, size_t __end)
 
template<class _CharT , class _Alloc >
bool operator== (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
 
template<class _CharT , class _Alloc >
bool operator< (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
 
template<class _CharT , class _Alloc >
ptrdiff_t operator- (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
 
template<class _CharT , class _Alloc >
_Rope_const_iterator< _CharT, _Allocoperator- (const _Rope_const_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
 
template<class _CharT , class _Alloc >
_Rope_const_iterator< _CharT, _Allocoperator+ (const _Rope_const_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
 
template<class _CharT , class _Alloc >
_Rope_const_iterator< _CharT, _Allocoperator+ (ptrdiff_t __n, const _Rope_const_iterator< _CharT, _Alloc > &__x)
 
template<class _CharT , class _Alloc >
bool operator== (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
 
template<class _CharT , class _Alloc >
bool operator< (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
 
template<class _CharT , class _Alloc >
ptrdiff_t operator- (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
 
template<class _CharT , class _Alloc >
_Rope_iterator< _CharT, _Allocoperator- (const _Rope_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
 
template<class _CharT , class _Alloc >
_Rope_iterator< _CharT, _Allocoperator+ (const _Rope_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
 
template<class _CharT , class _Alloc >
_Rope_iterator< _CharT, _Allocoperator+ (ptrdiff_t __n, const _Rope_iterator< _CharT, _Alloc > &__x)
 
template<class _CharT , class _Alloc >
rope< _CharT, _Allocoperator+ (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
 
template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > & operator+= (rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
 
template<class _CharT , class _Alloc >
rope< _CharT, _Allocoperator+ (const rope< _CharT, _Alloc > &__left, const _CharT *__right)
 
template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > & operator+= (rope< _CharT, _Alloc > &__left, const _CharT *__right)
 
template<class _CharT , class _Alloc >
rope< _CharT, _Allocoperator+ (const rope< _CharT, _Alloc > &__left, _CharT __right)
 
template<class _CharT , class _Alloc >
rope< _CharT, _Alloc > & operator+= (rope< _CharT, _Alloc > &__left, _CharT __right)
 
template<class _CharT , class _Alloc >
bool operator< (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
 
template<class _CharT , class _Alloc >
bool operator== (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
 
template<class _CharT , class _Alloc >
bool operator== (const _Rope_char_ptr_proxy< _CharT, _Alloc > &__x, const _Rope_char_ptr_proxy< _CharT, _Alloc > &__y)
 
template<class _CharT , class _Traits , class _Alloc >
basic_ostream< _CharT, _Traits > & operator<< (basic_ostream< _CharT, _Traits > &__o, const rope< _CharT, _Alloc > &__r)
 
crope::reference __mutable_reference_at (crope &__c, size_t __i)
 
void swap (crope &__x, crope &__y)
 
template<class _CharT , class _Alloc >
void _Rope_rotate (_Rope_iterator< _CharT, _Alloc > __first, _Rope_iterator< _CharT, _Alloc > __middle, _Rope_iterator< _CharT, _Alloc > __last)
 
void rotate (_Rope_iterator< char, allocator< char > > __first, _Rope_iterator< char, allocator< char > > __middle, _Rope_iterator< char, allocator< char > > __last)
 

Macro Definition Documentation

◆ __exponentiate_threshold

#define __exponentiate_threshold   size_t(32)

◆ __ROPE_DEPTH_SIZE

#define __ROPE_DEPTH_SIZE   46

Definition at line 343 of file _rope.h.

◆ __ROPE_MAX_DEPTH

#define __ROPE_MAX_DEPTH   45

Definition at line 342 of file _rope.h.

◆ _ROPE_SWAP_SPECIALIZATION

#define _ROPE_SWAP_SPECIALIZATION (   _CharT,
  __Alloc 
)
Value:
_CharT __tmp = __a; \
__a = __b; \
__b = __tmp; \
}
void swap(crope &__x, crope &__y)
Definition: _rope.h:2316

Definition at line 697 of file _rope.h.

◆ _STLP_CREATE_ALLOCATOR

#define _STLP_CREATE_ALLOCATOR (   __atype,
  __a,
  _Tp 
)    (_Alloc_traits<_Tp,__atype>::create_allocator(__a))

Definition at line 81 of file _rope.h.

Typedef Documentation

◆ crope

typedef rope<char, allocator<char> > crope

Definition at line 2297 of file _rope.h.

Function Documentation

◆ __identity_element()

template<class _CharT , class _Alloc >
rope<_CharT,_Alloc> __identity_element ( _Rope_Concat_fn< _CharT, _Alloc )
inline

Definition at line 133 of file _rope.h.

134 { return rope<_CharT,_Alloc>(); }
Definition: _rope.h:91

◆ __mutable_reference_at()

crope::reference __mutable_reference_at ( crope __c,
size_t  __i 
)
inline

Definition at line 2302 of file _rope.h.

2303 { return __c.mutable_reference_at(__i); }
#define __c
Definition: schilyio.h:209

◆ _Rope_rotate()

template<class _CharT , class _Alloc >
void _Rope_rotate ( _Rope_iterator< _CharT, _Alloc __first,
_Rope_iterator< _CharT, _Alloc __middle,
_Rope_iterator< _CharT, _Alloc __last 
)

Definition at line 1358 of file _rope.c.

1360  {
1361  _STLP_ASSERT(__first.container() == __middle.container() &&
1362  __middle.container() == __last.container())
1363  rope<_CharT,_Alloc>& __r(__first.container());
1364  rope<_CharT,_Alloc> __prefix = __r.substr(0, __first.index());
1365  rope<_CharT,_Alloc> __suffix =
1366  __r.substr(__last.index(), __r.size() - __last.index());
1367  rope<_CharT,_Alloc> __part1 =
1368  __r.substr(__middle.index(), __last.index() - __middle.index());
1369  rope<_CharT,_Alloc> __part2 =
1370  __r.substr(__first.index(), __middle.index() - __first.index());
1371  __r = __prefix;
1372  __r += __part1;
1373  __r += __part2;
1374  __r += __suffix;
1375 }
Definition: _rope.h:91
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68
rope< _CharT, _Alloc > & container()
Definition: _rope.h:994
_Self substr(size_t __start, size_t __len=1) const
Definition: _rope.h:1941
size_t index() const
Definition: _rope.h:823
#define _STLP_ASSERT(expr)
Definition: _debug.h:165

Referenced by rotate().

◆ _S_apply_to_pieces()

template<class _CharT , class _Alloc , class _CharConsumer >
bool _S_apply_to_pieces ( _CharConsumer &  __c,
_Rope_RopeRep< _CharT, _Alloc > *  __r,
size_t  __begin,
size_t  __end 
)

Definition at line 785 of file _rope.c.

787  {
788  typedef _Rope_RopeRep<_CharT, _Alloc> _RopeRep;
789  typedef _Rope_RopeConcatenation<_CharT,_Alloc> _RopeConcatenation;
790  typedef _Rope_RopeLeaf<_CharT,_Alloc> _RopeLeaf;
791  typedef _Rope_RopeFunction<_CharT,_Alloc> _RopeFunction;
792 
793  if (0 == __r) return true;
794  switch(__r->_M_tag) {
795  case _RopeRep::_S_concat:
796  {
797  _RopeConcatenation* __conc = __STATIC_CAST(_RopeConcatenation*, __r);
798  _RopeRep* __left = __conc->_M_left;
799  size_t __left_len = __left->_M_size._M_data;
800  if (__begin < __left_len) {
801  size_t __left_end = (min) (__left_len, __end);
802  if (!_S_apply_to_pieces(__c, __left, __begin, __left_end))
803  return false;
804  }
805  if (__end > __left_len) {
806  _RopeRep* __right = __conc->_M_right;
807  size_t __right_start = (max)(__left_len, __begin);
808  if (!_S_apply_to_pieces(__c, __right,
809  __right_start - __left_len,
810  __end - __left_len)) {
811  return false;
812  }
813  }
814  }
815  return true;
816  case _RopeRep::_S_leaf:
817  {
818  _RopeLeaf* __l = __STATIC_CAST(_RopeLeaf*, __r);
819  return __c(__l->_M_data + __begin, __end - __begin);
820  }
821  case _RopeRep::_S_function:
822  case _RopeRep::_S_substringfn:
823  {
824  _RopeFunction* __f = __STATIC_CAST(_RopeFunction*, __r);
825  size_t __len = __end - __begin;
826  bool __result;
827  _CharT* __buffer = __r->get_allocator().allocate(__len);
828  _STLP_TRY {
829  (*(__f->_M_fn))(__begin, __len, __buffer);
830  __result = __c(__buffer, __len);
831  __r->get_allocator().deallocate(__buffer, __len);
832  }
833  _STLP_UNWIND((__r->get_allocator().deallocate(__buffer, __len)))
834  return __result;
835  }
836  default:
837  _STLP_ASSERT(false)
838  /*NOTREACHED*/
839  return false;
840  }
841 }
return
Definition: dirsup.c:529
#define max(a, b)
Definition: svc.c:63
allocator_type get_allocator() const
Definition: _rope.h:358
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
#define __c
Definition: schilyio.h:209
#define _STLP_UNWIND(action)
Definition: features.h:824
_Tag _M_tag
Definition: _rope.h:352
#define false
Definition: stdbool.h:38
#define _STLP_TRY
Definition: features.h:817
#define min(a, b)
Definition: monoChain.cc:55
#define _STLP_ASSERT(expr)
Definition: _debug.h:165
bool _S_apply_to_pieces(_CharConsumer &__c, _Rope_RopeRep< _CharT, _Alloc > *__r, size_t __begin, size_t __end)
Definition: _rope.c:785

Referenced by _S_apply_to_pieces(), rope< _CharT, _Alloc >::_S_flatten(), rope< _CharT, _Alloc >::apply_to_pieces(), and rope< _CharT, _Alloc >::find().

◆ _S_construct_null()

template<class _CharT >
void _S_construct_null ( _CharT *  __p)
inline

Definition at line 148 of file _rope.h.

148  {
149  typedef typename _IsIntegral<_CharT>::_Ret _Char_Is_Integral;
150  _S_construct_null_aux(__p, _Char_Is_Integral());
151 }
_STLP_MOVE_TO_STD_NAMESPACE void _S_construct_null_aux(_CharT *__p, const __true_type &)
Definition: _rope.h:140

Referenced by rope< _CharT, _Alloc >::_S_leaf_concat_char_iter(), rope< _CharT, _Alloc >::_S_RopeLeaf_from_unowned_char_ptr(), rope< _CharT, _Alloc >::_S_substring(), _Terminate_RopeLeaf(), rope< _CharT, _Alloc >::c_str(), rope< _CharT, _Alloc >::replace_with_c_str(), and rope< _CharT, _Alloc >::rope().

◆ _S_construct_null_aux() [1/2]

template<class _CharT >
_STLP_MOVE_TO_STD_NAMESPACE void _S_construct_null_aux ( _CharT *  __p,
const __true_type  
)
inline

Definition at line 140 of file _rope.h.

141 { *__p = 0; }

Referenced by _S_construct_null().

◆ _S_construct_null_aux() [2/2]

template<class _CharT >
void _S_construct_null_aux ( _CharT *  __p,
const __false_type  
)
inline

Definition at line 144 of file _rope.h.

145 { _STLP_STD::_Construct(__p); }
void _Construct(_T1 *__p)
Definition: _construct.h:106

◆ operator+() [1/7]

template<class _CharT , class _Alloc >
_Rope_const_iterator<_CharT,_Alloc> operator+ ( const _Rope_const_iterator< _CharT, _Alloc > &  __x,
ptrdiff_t  __n 
)
inline

Definition at line 2122 of file _rope.h.

return __n
Definition: _algo.h:75
size_t _M_current_pos
Definition: _rope.h:764
_RopeRep * _M_root
Definition: _rope.h:766

◆ operator+() [2/7]

template<class _CharT , class _Alloc >
_Rope_const_iterator<_CharT,_Alloc> operator+ ( ptrdiff_t  __n,
const _Rope_const_iterator< _CharT, _Alloc > &  __x 
)
inline

Definition at line 2127 of file _rope.h.

return __n
Definition: _algo.h:75
size_t _M_current_pos
Definition: _rope.h:764
_RopeRep * _M_root
Definition: _rope.h:766

◆ operator+() [3/7]

template<class _CharT , class _Alloc >
_Rope_iterator<_CharT,_Alloc> operator+ ( const _Rope_iterator< _CharT, _Alloc > &  __x,
ptrdiff_t  __n 
)
inline

Definition at line 2180 of file _rope.h.

2181  {
2183 }
return __n
Definition: _algo.h:75
size_t _M_current_pos
Definition: _rope.h:764
rope< _CharT, _Alloc > * _M_root_rope
Definition: _rope.h:972

◆ operator+() [4/7]

template<class _CharT , class _Alloc >
_Rope_iterator<_CharT,_Alloc> operator+ ( ptrdiff_t  __n,
const _Rope_iterator< _CharT, _Alloc > &  __x 
)
inline

Definition at line 2187 of file _rope.h.

2187  {
2189 }
return __n
Definition: _algo.h:75
size_t _M_current_pos
Definition: _rope.h:764
rope< _CharT, _Alloc > * _M_root_rope
Definition: _rope.h:972

◆ operator+() [5/7]

template<class _CharT , class _Alloc >
rope<_CharT,_Alloc> operator+ ( const rope< _CharT, _Alloc > &  __left,
const rope< _CharT, _Alloc > &  __right 
)
inline

Definition at line 2193 of file _rope.h.

2194  {
2195  _STLP_ASSERT(__left.get_allocator() == __right.get_allocator())
2196  return rope<_CharT,_Alloc>(rope<_CharT,_Alloc>::_S_concat_rep(__left._M_tree_ptr._M_data, __right._M_tree_ptr._M_data));
2197  // Inlining this should make it possible to keep __left and __right in registers.
2198 }
Definition: _rope.h:91
allocator_type get_allocator() const
Definition: _rope.h:1131
_STLP_PRIV _STLP_alloc_proxy< _RopeRep *, _CharT, allocator_type > _M_tree_ptr
Definition: _rope.h:1128
#define _STLP_ASSERT(expr)
Definition: _debug.h:165

◆ operator+() [6/7]

template<class _CharT , class _Alloc >
rope<_CharT,_Alloc> operator+ ( const rope< _CharT, _Alloc > &  __left,
const _CharT *  __right 
)
inline

Definition at line 2210 of file _rope.h.

2211  {
2212  size_t __rlen = rope<_CharT,_Alloc>::_S_char_ptr_len(__right);
2213  return rope<_CharT,_Alloc>(rope<_CharT,_Alloc>::_S_concat_char_iter(__left._M_tree_ptr._M_data, __right, __rlen));
2214 }
Definition: _rope.h:91
static size_t _S_char_ptr_len(const _CharT *__s)
Definition: _rope.h:1278
_STLP_PRIV _STLP_alloc_proxy< _RopeRep *, _CharT, allocator_type > _M_tree_ptr
Definition: _rope.h:1128

◆ operator+() [7/7]

template<class _CharT , class _Alloc >
rope<_CharT,_Alloc> operator+ ( const rope< _CharT, _Alloc > &  __left,
_CharT  __right 
)
inline

Definition at line 2226 of file _rope.h.

2226  {
2227  return rope<_CharT,_Alloc>(rope<_CharT,_Alloc>::_S_concat_char_iter(__left._M_tree_ptr._M_data, &__right, 1));
2228 }
Definition: _rope.h:91
_STLP_PRIV _STLP_alloc_proxy< _RopeRep *, _CharT, allocator_type > _M_tree_ptr
Definition: _rope.h:1128

◆ operator+=() [1/3]

template<class _CharT , class _Alloc >
rope<_CharT,_Alloc>& operator+= ( rope< _CharT, _Alloc > &  __left,
const rope< _CharT, _Alloc > &  __right 
)
inline

Definition at line 2202 of file _rope.h.

2203  {
2204  __left.append(__right);
2205  return __left;
2206 }
_Self & append(const _CharT *__iter, size_t __n)
Definition: _rope.h:1659

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

◆ operator+=() [2/3]

template<class _CharT , class _Alloc >
rope<_CharT,_Alloc>& operator+= ( rope< _CharT, _Alloc > &  __left,
const _CharT *  __right 
)
inline

Definition at line 2218 of file _rope.h.

2219  {
2220  __left.append(__right);
2221  return __left;
2222 }
_Self & append(const _CharT *__iter, size_t __n)
Definition: _rope.h:1659

◆ operator+=() [3/3]

template<class _CharT , class _Alloc >
rope<_CharT,_Alloc>& operator+= ( rope< _CharT, _Alloc > &  __left,
_CharT  __right 
)
inline

Definition at line 2232 of file _rope.h.

2232  {
2233  __left.append(__right);
2234  return __left;
2235 }
_Self & append(const _CharT *__iter, size_t __n)
Definition: _rope.h:1659

◆ operator-() [1/4]

template<class _CharT , class _Alloc >
ptrdiff_t operator- ( const _Rope_const_iterator< _CharT, _Alloc > &  __x,
const _Rope_const_iterator< _CharT, _Alloc > &  __y 
)
inline

Definition at line 2109 of file _rope.h.

2111 { return (ptrdiff_t)__x._M_current_pos - (ptrdiff_t)__y._M_current_pos; }
size_t _M_current_pos
Definition: _rope.h:764
__kernel_ptrdiff_t ptrdiff_t
Definition: linux.h:247

◆ operator-() [2/4]

template<class _CharT , class _Alloc >
_Rope_const_iterator<_CharT,_Alloc> operator- ( const _Rope_const_iterator< _CharT, _Alloc > &  __x,
ptrdiff_t  __n 
)
inline

Definition at line 2116 of file _rope.h.

return __n
Definition: _algo.h:75
size_t _M_current_pos
Definition: _rope.h:764
_RopeRep * _M_root
Definition: _rope.h:766

◆ operator-() [3/4]

template<class _CharT , class _Alloc >
ptrdiff_t operator- ( const _Rope_iterator< _CharT, _Alloc > &  __x,
const _Rope_iterator< _CharT, _Alloc > &  __y 
)
inline

Definition at line 2165 of file _rope.h.

2167 { return (ptrdiff_t)__x._M_current_pos - (ptrdiff_t)__y._M_current_pos; }
size_t _M_current_pos
Definition: _rope.h:764
__kernel_ptrdiff_t ptrdiff_t
Definition: linux.h:247

◆ operator-() [4/4]

template<class _CharT , class _Alloc >
_Rope_iterator<_CharT,_Alloc> operator- ( const _Rope_iterator< _CharT, _Alloc > &  __x,
ptrdiff_t  __n 
)
inline

Definition at line 2172 of file _rope.h.

2173  {
2175 }
return __n
Definition: _algo.h:75
size_t _M_current_pos
Definition: _rope.h:764
rope< _CharT, _Alloc > * _M_root_rope
Definition: _rope.h:972

◆ operator<() [1/3]

template<class _CharT , class _Alloc >
bool operator< ( const _Rope_const_iterator< _CharT, _Alloc > &  __x,
const _Rope_const_iterator< _CharT, _Alloc > &  __y 
)
inline

Definition at line 2080 of file _rope.h.

2082 { return (__x._M_current_pos < __y._M_current_pos); }
size_t _M_current_pos
Definition: _rope.h:764

◆ operator<() [2/3]

template<class _CharT , class _Alloc >
bool operator< ( const _Rope_iterator< _CharT, _Alloc > &  __x,
const _Rope_iterator< _CharT, _Alloc > &  __y 
)
inline

Definition at line 2138 of file _rope.h.

2140 { return (__x._M_current_pos < __y._M_current_pos); }
size_t _M_current_pos
Definition: _rope.h:764

◆ operator<() [3/3]

template<class _CharT , class _Alloc >
bool operator< ( const rope< _CharT, _Alloc > &  __left,
const rope< _CharT, _Alloc > &  __right 
)
inline

Definition at line 2239 of file _rope.h.

2240  {
2241  return __left.compare(__right) < 0;
2242 }
int compare(const _Self &__y) const
Definition: _rope.h:1359

◆ operator<<()

template<class _CharT , class _Traits , class _Alloc >
basic_ostream<_CharT, _Traits>& operator<< ( basic_ostream< _CharT, _Traits > &  __o,
const rope< _CharT, _Alloc > &  __r 
)

Definition at line 889 of file _rope.c.

890  {
891  typedef typename _IsIntegral<_CharT>::_Ret _Char_Is_Integral;
892  return _S_io_get(__o, __r, _Char_Is_Integral());
893 }
basic_ostream< _CharT, _Traits > & _S_io_get(basic_ostream< _CharT, _Traits > &__o, const rope< _CharT, _Alloc > &__r, const __true_type &)
Definition: _rope.c:851

◆ operator==() [1/4]

template<class _CharT , class _Alloc >
bool operator== ( const _Rope_const_iterator< _CharT, _Alloc > &  __x,
const _Rope_const_iterator< _CharT, _Alloc > &  __y 
)
inline

Definition at line 2073 of file _rope.h.

2074  {
2075  return (__x._M_current_pos == __y._M_current_pos &&
2076  __x._M_root == __y._M_root);
2077 }
size_t _M_current_pos
Definition: _rope.h:764
_RopeRep * _M_root
Definition: _rope.h:766

◆ operator==() [2/4]

template<class _CharT , class _Alloc >
bool operator== ( const _Rope_iterator< _CharT, _Alloc > &  __x,
const _Rope_iterator< _CharT, _Alloc > &  __y 
)
inline

Definition at line 2131 of file _rope.h.

2132  {
2133  return (__x._M_current_pos == __y._M_current_pos &&
2134  __x._M_root_rope == __y._M_root_rope);
2135 }
size_t _M_current_pos
Definition: _rope.h:764
rope< _CharT, _Alloc > * _M_root_rope
Definition: _rope.h:972

◆ operator==() [3/4]

template<class _CharT , class _Alloc >
bool operator== ( const rope< _CharT, _Alloc > &  __left,
const rope< _CharT, _Alloc > &  __right 
)
inline

Definition at line 2246 of file _rope.h.

2247  {
2248  return __left.compare(__right) == 0;
2249 }
int compare(const _Self &__y) const
Definition: _rope.h:1359

◆ operator==() [4/4]

template<class _CharT , class _Alloc >
bool operator== ( const _Rope_char_ptr_proxy< _CharT, _Alloc > &  __x,
const _Rope_char_ptr_proxy< _CharT, _Alloc > &  __y 
)
inline

Definition at line 2286 of file _rope.h.

2287  {
2288  return (__x._M_pos == __y._M_pos && __x._M_root == __y._M_root);
2289 }
rope< _CharT, _Alloc > * _M_root
Definition: _rope.h:720

◆ rotate()

void rotate ( _Rope_iterator< char, allocator< char > >  __first,
_Rope_iterator< char, allocator< char > >  __middle,
_Rope_iterator< char, allocator< char > >  __last 
)
inline

Definition at line 2355 of file _rope.h.

2358 { _Rope_rotate(__first, __middle, __last); }
void _Rope_rotate(_Rope_iterator< _CharT, _Alloc > __first, _Rope_iterator< _CharT, _Alloc > __middle, _Rope_iterator< _CharT, _Alloc > __last)
Definition: _rope.c:1358
_STLP_INLINE_LOOP _InputIter __last
Definition: _algo.h:68

◆ swap()

void swap ( crope __x,
crope __y 
)
inline

Definition at line 2316 of file _rope.h.

2316 { __x.swap(__y); }
void swap(_Self &__b)
Definition: _rope.h:1701