# rope File Reference

## Detailed Description

This file is a GNU extension to the Standard C++ Library (possibly containing extensions from the HP/SGI STL subset).

Definition in file rope.

Go to the source code of this file.

## Namespaces

- namespace __gnu_cxx
- namespace __gnu_cxx::__detail

## Classes

- struct __gnu_cxx::_Refcount_Base
- struct __gnu_cxx::_Rope_base< _CharT, _Alloc >
- class __gnu_cxx::_Rope_char_consumer< _CharT >
- class __gnu_cxx::_Rope_char_ptr_proxy< _CharT, _Alloc >
- class __gnu_cxx::_Rope_char_ref_proxy< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_Concat_fn< _CharT, _Alloc >
- class __gnu_cxx::_Rope_const_iterator< _CharT, _Alloc >
- class __gnu_cxx::_Rope_iterator< _CharT, _Alloc >
- class __gnu_cxx::_Rope_iterator_base< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_rep_base< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_RopeConcatenation< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_RopeFunction< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_RopeLeaf< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_RopeRep< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_RopeSubstring< _CharT, _Alloc >
- struct __gnu_cxx::_Rope_self_destruct_ptr< _CharT, _Alloc >
- class __gnu_cxx::char_producer< _CharT >
- struct __gnu_cxx::hash< crope >
- struct __gnu_cxx::hash< wrope >
- class __gnu_cxx::rope< _CharT, _Alloc >
- class __gnu_cxx::sequence_buffer< _Sequence, _Buf_sz >

## Defines

- #define __GC_CONST
- #define __ROPE_DEFINE_ALLOC(_Tp, __name)
- #define __ROPE_DEFINE_ALLOC(_Tp, __name)
- #define __ROPE_DEFINE_ALLOCS(__a)
- #define __STATIC_IF_SGI_ALLOC
- #define __STL_FREE_STRING(__s, __l, __a)
- #define __STL_ROPE_FROM_UNOWNED_CHAR_PTR(__s, __size, __a)
- #define _ROPE

## Typedefs

- typedef rope< char > __gnu_cxx::crope
- typedef rope< wchar_t > __gnu_cxx::wrope

## Enumerations

- enum { _S_max_rope_depth }
- enum __gnu_cxx::__detail::_Tag { _S_leaf, _S_concat, _S_substringfn, _S_function }

## Functions

- crope::reference __gnu_cxx::__mutable_reference_at (crope &__c, size_t __i)
- void __gnu_cxx::_S_cond_store_eos (wchar_t &__c)
- void __gnu_cxx::_S_cond_store_eos (char &__c)
- template<class _CharT> void __gnu_cxx::_S_cond_store_eos (_CharT &)
- template<class _CharT> _CharT __gnu_cxx::_S_eos (_CharT *)
- bool __gnu_cxx::_S_is_basic_char_type (wchar_t *)
- bool __gnu_cxx::_S_is_basic_char_type (char *)
- template<class _CharT> bool __gnu_cxx::_S_is_basic_char_type (_CharT *)
- bool __gnu_cxx::_S_is_one_byte_char_type (char *)
- template<class _CharT> bool __gnu_cxx::_S_is_one_byte_char_type (_CharT *)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator!= (const _Rope_char_ptr_proxy< _CharT, _Alloc > &__x, const _Rope_char_ptr_proxy< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator!= (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator!= (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator!= (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> rope< _CharT, _Alloc > __gnu_cxx::operator+ (const rope< _CharT, _Alloc > &__left, _CharT __right)
- template<class _CharT, class _Alloc> rope< _CharT, _Alloc > __gnu_cxx::operator+ (const rope< _CharT, _Alloc > &__left, const _CharT *__right)
- template<class _CharT, class _Alloc> rope< _CharT, _Alloc > __gnu_cxx::operator+ (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
- template<class _CharT, class _Alloc> _Rope_iterator< _CharT, _Alloc > __gnu_cxx::operator+ (ptrdiff_t __n, const _Rope_iterator< _CharT, _Alloc > &__x)
- template<class _CharT, class _Alloc> _Rope_iterator< _CharT, _Alloc > __gnu_cxx::operator+ (const _Rope_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
- template<class _CharT, class _Alloc> _Rope_const_iterator< _CharT,
  _Alloc > __gnu_cxx::operator+ (ptrdiff_t __n, const _Rope_const_iterator< _CharT, _Alloc > &__x)
- template<class _CharT, class _Alloc> _Rope_const_iterator< _CharT,
  _Alloc > __gnu_cxx::operator+ (const _Rope_const_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
- template<class _CharT, class _Alloc> rope< _CharT, _Alloc > & __gnu_cxx::operator+= (rope< _CharT, _Alloc > &__left, _CharT __right)
- template<class _CharT, class _Alloc> rope< _CharT, _Alloc > & __gnu_cxx::operator+= (rope< _CharT, _Alloc > &__left, const _CharT *__right)
- template<class _CharT, class _Alloc> rope< _CharT, _Alloc > & __gnu_cxx::operator+= (rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
- template<class _CharT, class _Alloc> ptrdiff_t __gnu_cxx::operator- (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> _Rope_iterator< _CharT, _Alloc > __gnu_cxx::operator- (const _Rope_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
- template<class _CharT, class _Alloc> ptrdiff_t __gnu_cxx::operator- (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> _Rope_const_iterator< _CharT,
  _Alloc > __gnu_cxx::operator- (const _Rope_const_iterator< _CharT, _Alloc > &__x, ptrdiff_t __n)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator< (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator< (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator< (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Traits, class _Alloc> basic_ostream< _CharT, _Traits > & __gnu_cxx::operator<< (basic_ostream< _CharT, _Traits > &__o, const rope< _CharT, _Alloc > &__r)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator<= (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator<= (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator<= (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator== (const rope< _CharT, _Alloc > &__left, const rope< _CharT, _Alloc > &__right)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator== (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator== (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator== (const _Rope_char_ptr_proxy< _CharT, _Alloc > &__x, const _Rope_char_ptr_proxy< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator> (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator> (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator> (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator>= (const rope< _CharT, _Alloc > &__x, const rope< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator>= (const _Rope_iterator< _CharT, _Alloc > &__x, const _Rope_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> bool __gnu_cxx::operator>= (const _Rope_const_iterator< _CharT, _Alloc > &__x, const _Rope_const_iterator< _CharT, _Alloc > &__y)
- template<class _CharT, class _Alloc> void __gnu_cxx::swap (rope< _CharT, _Alloc > &__x, rope< _CharT, _Alloc > &__y)
- template<class _CharT, class __Alloc> void __gnu_cxx::swap (_Rope_char_ref_proxy< _CharT, __Alloc > __a, _Rope_char_ref_proxy< _CharT, __Alloc > __b)

## Variables

- rope< _CharT, _Alloc > __gnu_cxx::identity_element (_Rope_Concat_fn< _CharT, _Alloc >)