lunar (3) __gnu_cxx::__rc_string_base.3cxx.gz

Provided by: libstdc++-9-doc_9.5.0-3ubuntu1_all bug

NAME

       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >

SYNOPSIS

       #include <rc_string_base.h>

       Inherits __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >.

   Public Types
       typedef _Util_Base::_CharT_alloc_type _CharT_alloc_type
       typedef __vstring_utility< _CharT, _Traits, _Alloc > _Util_Base
       typedef _Alloc allocator_type
       typedef _CharT_alloc_type::size_type size_type
       typedef _Traits traits_type
       typedef _Traits::char_type value_type

   Public Member Functions
       __rc_string_base (__rc_string_base &&__rcs)
       template<typename _InputIterator > __rc_string_base (_InputIterator __beg, _InputIterator
           __end, const _Alloc &__a)
       __rc_string_base (const __rc_string_base &__rcs)
       __rc_string_base (const _Alloc &__a)
       __rc_string_base (size_type __n, _CharT __c, const _Alloc &__a)
       void _M_assign (const __rc_string_base &__rcs)
       size_type _M_capacity () const
       void _M_clear ()
       bool _M_compare (const __rc_string_base &) const
       bool _M_compare (const __rc_string_base &__rcs) const
       bool _M_compare (const __rc_string_base &__rcs) const
       _CharT * _M_data () const
       void _M_erase (size_type __pos, size_type __n)
       allocator_type & _M_get_allocator ()
       const allocator_type & _M_get_allocator () const
       bool _M_is_shared () const
       void _M_leak ()
       size_type _M_length () const
       size_type _M_max_size () const
       void _M_mutate (size_type __pos, size_type __len1, const _CharT *__s, size_type __len2)
       void _M_reserve (size_type __res)
       void _M_set_leaked ()
       void _M_set_length (size_type __n)
       void _M_swap (__rc_string_base &__rcs)
       template<typename _InIterator > _CharT * _S_construct (_InIterator __beg, _InIterator
           __end, const _Alloc &__a, std::forward_iterator_tag)

   Protected Types
       typedef __gnu_cxx::__normal_iterator< const_pointer, __gnu_cxx::__versa_string< _CharT,
           _Traits, _Alloc, __rc_string_base > > __const_rc_iterator
       typedef __gnu_cxx::__normal_iterator< const_pointer, __gnu_cxx::__versa_string< _CharT,
           _Traits, _Alloc, __sso_string_base > > __const_sso_iterator
       typedef __gnu_cxx::__normal_iterator< pointer, __gnu_cxx::__versa_string< _CharT, _Traits,
           _Alloc, __rc_string_base > > __rc_iterator
       typedef __gnu_cxx::__normal_iterator< pointer, __gnu_cxx::__versa_string< _CharT, _Traits,
           _Alloc, __sso_string_base > > __sso_iterator
       typedef _CharT_alloc_type::const_pointer const_pointer
       typedef _CharT_alloc_type::difference_type difference_type
       typedef _CharT_alloc_type::pointer pointer

   Static Protected Member Functions
       static void _S_assign (_CharT *__d, size_type __n, _CharT __c)
       static int _S_compare (size_type __n1, size_type __n2)
       static void _S_copy (_CharT *__d, const _CharT *__s, size_type __n)
       static void _S_copy_chars (_CharT *__p, __const_rc_iterator __k1, __const_rc_iterator
           __k2)
       static void _S_copy_chars (_CharT *__p, __const_sso_iterator __k1, __const_sso_iterator
           __k2)
       static void _S_copy_chars (_CharT *__p, __rc_iterator __k1, __rc_iterator __k2)
       static void _S_copy_chars (_CharT *__p, __sso_iterator __k1, __sso_iterator __k2)
       static void _S_copy_chars (_CharT *__p, _CharT *__k1, _CharT *__k2)
       template<typename _Iterator > static void _S_copy_chars (_CharT *__p, _Iterator __k1,
           _Iterator __k2)
       static void _S_copy_chars (_CharT *__p, const _CharT *__k1, const _CharT *__k2)
       static void _S_move (_CharT *__d, const _CharT *__s, size_type __n)

Detailed Description

   template<typename _CharT, typename _Traits, typename _Alloc>
       class __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >"Documentation? What's that?
       Nathan Myers ncm@cantrip.org.

       A string looks like this:

                                            [_Rep]
                                            _M_length
       [__rc_string_base<char_type>]        _M_capacity
       _M_dataplus                          _M_refcount
       _M_p ---------------->               unnamed array of char_type

       Where the _M_p points to the first character in the string, and you cast it to a pointer-
       to-_Rep and subtract 1 to get a pointer to the header.

       This approach has the enormous advantage that a string object requires only one
       allocation. All the ugliness is confined within a single pair of inline functions, which
       each compile to a single add instruction: _Rep::_M_refdata(), and
       __rc_string_base::_M_rep(); and the allocation function which gets a block of raw bytes
       and with room enough and constructs a _Rep object at the front.

       The reason you want _M_data pointing to the character array and not the _Rep is so that
       the debugger can see the string contents. (Probably we should add a non-inline member to
       get the _Rep for the debugger to use, so users can check the actual string length.)

       Note that the _Rep object is a POD so that you can have a static empty string _Rep object
       already constructed before static constructors have run. The reference-count encoding is
       chosen so that a 0 indicates one reference, so you never try to destroy the empty-string
       _Rep object.

       All but the last paragraph is considered pretty conventional for a C++ string
       implementation.

       Definition at line 82 of file rc_string_base.h.

Member Typedef Documentation

   template<typename _CharT , typename _Traits , typename _Alloc > typedef __gnu_cxx::
       __normal_iterator<const_pointer, __gnu_cxx:: __versa_string<_CharT, _Traits, _Alloc,
       __rc_string_base> > __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc
       >::__const_rc_iterator [inherited]
       Definition at line 84 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef __gnu_cxx::
       __normal_iterator<const_pointer, __gnu_cxx:: __versa_string<_CharT, _Traits, _Alloc,
       __sso_string_base> > __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc
       >::__const_sso_iterator [inherited]
       Definition at line 72 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef __gnu_cxx::
       __normal_iterator<pointer, __gnu_cxx:: __versa_string<_CharT, _Traits, _Alloc,
       __rc_string_base> > __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::__rc_iterator
       [inherited]
       Definition at line 79 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef __gnu_cxx::
       __normal_iterator<pointer, __gnu_cxx:: __versa_string<_CharT, _Traits, _Alloc,
       __sso_string_base> > __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc
       >::__sso_iterator [inherited]
       Definition at line 67 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef
       _Util_Base::_CharT_alloc_type __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc
       >::_CharT_alloc_type
       Definition at line 91 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef
       __vstring_utility<_CharT, _Traits, _Alloc> __gnu_cxx::__rc_string_base< _CharT, _Traits,
       _Alloc >::_Util_Base
       Definition at line 90 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef _Alloc
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::allocator_type
       Definition at line 88 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef
       _CharT_alloc_type::const_pointer __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc
       >::const_pointer [inherited]
       Definition at line 60 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef
       _CharT_alloc_type::difference_type __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc
       >::difference_type [inherited]
       Definition at line 58 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef
       _CharT_alloc_type::pointer __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc
       >::pointer [inherited]
       Definition at line 59 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef
       _CharT_alloc_type::size_type __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc
       >::size_type
       Definition at line 92 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef _Traits
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::traits_type
       Definition at line 86 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > typedef _Traits::char_type
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::value_type
       Definition at line 87 of file rc_string_base.h.

Constructor & Destructor Documentation

   template<typename _CharT , typename _Traits , typename _Alloc > __gnu_cxx::__rc_string_base<
       _CharT, _Traits, _Alloc >::__rc_string_base () [inline]
       Definition at line 309 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > __gnu_cxx::__rc_string_base<
       _CharT, _Traits, _Alloc >::__rc_string_base (const _Alloc & __a)
       Definition at line 473 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > __gnu_cxx::__rc_string_base<
       _CharT, _Traits, _Alloc >::__rc_string_base (const __rc_string_base< _CharT, _Traits,
       _Alloc > & __rcs)
       Definition at line 478 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > __gnu_cxx::__rc_string_base<
       _CharT, _Traits, _Alloc >::__rc_string_base (__rc_string_base< _CharT, _Traits, _Alloc >
       && __rcs) [inline]
       Definition at line 317 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > __gnu_cxx::__rc_string_base<
       _CharT, _Traits, _Alloc >::__rc_string_base (size_type __n, _CharT __c, const _Alloc &
       __a)
       Definition at line 484 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > template<typename
       _InputIterator > __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::__rc_string_base
       (_InputIterator __beg, _InputIterator __end, const _Alloc & __a)
       Definition at line 490 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > __gnu_cxx::__rc_string_base<
       _CharT, _Traits, _Alloc >::~__rc_string_base () [inline]
       Definition at line 328 of file rc_string_base.h.

Member Function Documentation

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_assign (const __rc_string_base<
       _CharT, _Traits, _Alloc > & __rcs)
       Definition at line 623 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > size_type
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_capacity () const [inline]
       Definition at line 287 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_clear () [inline]
       Definition at line 356 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > bool
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_compare (const
       __rc_string_base< _CharT, _Traits, _Alloc > &) const [inline]
       Definition at line 363 of file rc_string_base.h.

   bool __gnu_cxx::__rc_string_base< char, std::char_traits< char >, std::allocator< char >
       >::_M_compare (const __rc_string_base< _CharT, _Traits, _Alloc > & __rcs) const [inline]
       Definition at line 711 of file rc_string_base.h.

   bool __gnu_cxx::__rc_string_base< wchar_t, std::char_traits< wchar_t >, std::allocator<
       wchar_t > >::_M_compare (const __rc_string_base< _CharT, _Traits, _Alloc > & __rcs) const
       [inline]
       Definition at line 723 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > _CharT *
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_data () const [inline]
       Definition at line 279 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_erase (size_type __pos,
       size_type __n)
       Definition at line 677 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > allocator_type &
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_get_allocator () [inline]
       Definition at line 332 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > const allocator_type &
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_get_allocator () const [inline]
       Definition at line 336 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > bool
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_is_shared () const [inline]
       Definition at line 291 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_leak () [inline]
       Definition at line 299 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > size_type
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_length () const [inline]
       Definition at line 283 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > size_type
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_max_size () const [inline]
       Definition at line 275 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_mutate (size_type __pos,
       size_type __len1, const _CharT * __s, size_type __len2)
       Definition at line 654 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_reserve (size_type __res)
       Definition at line 636 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_set_leaked () [inline]
       Definition at line 295 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_set_length (size_type __n)
       [inline]
       Definition at line 306 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > void
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_M_swap (__rc_string_base< _CharT,
       _Traits, _Alloc > & __rcs)
       Definition at line 603 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_assign (_CharT * __d,
       size_type __n, _CharT __c) [inline],  [static],  [inherited]
       Definition at line 122 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static int
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_compare (size_type __n1,
       size_type __n2) [inline],  [static],  [inherited]
       Definition at line 167 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > template<typename _InIterator
       > _CharT * __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >::_S_construct
       (_InIterator __beg, _InIterator __end, const _Alloc & __a, std::forward_iterator_tag)
       Definition at line 557 of file rc_string_base.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy (_CharT * __d, const
       _CharT * __s, size_type __n) [inline],  [static],  [inherited]
       Definition at line 104 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy_chars (_CharT * __p,
       __const_rc_iterator __k1, __const_rc_iterator __k2) [inline],  [static],  [inherited]
       Definition at line 154 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy_chars (_CharT * __p,
       __const_sso_iterator __k1, __const_sso_iterator __k2) [inline],  [static],  [inherited]
       Definition at line 145 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy_chars (_CharT * __p,
       __rc_iterator __k1, __rc_iterator __k2) [inline],  [static],  [inherited]
       Definition at line 150 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy_chars (_CharT * __p,
       __sso_iterator __k1, __sso_iterator __k2) [inline],  [static],  [inherited]
       Definition at line 141 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy_chars (_CharT * __p,
       _CharT * __k1, _CharT * __k2) [inline],  [static],  [inherited]
       Definition at line 159 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > template<typename _Iterator >
       static void __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy_chars (_CharT
       * __p, _Iterator __k1, _Iterator __k2) [inline],  [static],  [inherited]
       Definition at line 134 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_copy_chars (_CharT * __p,
       const _CharT * __k1, const _CharT * __k2) [inline],  [static],  [inherited]
       Definition at line 163 of file vstring_util.h.

   template<typename _CharT , typename _Traits , typename _Alloc > static void
       __gnu_cxx::__vstring_utility< _CharT, _Traits, _Alloc >::_S_move (_CharT * __d, const
       _CharT * __s, size_type __n) [inline],  [static],  [inherited]
       Definition at line 113 of file vstring_util.h.

Author

       Generated automatically by Doxygen for libstdc++ from the source code.

libstdc++                            __gnuucxx::_2rc2string_base< _CharT, _Traits, _Alloc >(3cxx)