__gnu_cxx::__rc_string_base man page on RedHat

Man page or keyword search:  
man Server   29550 pages
apropos Keyword Search (all sections)
Output format
RedHat logo
[printable version]

__gnu_cxx::__rc_strin__gnu_cxx::__rc_string_base<;l_CharT, _Traits, _Alloc >(3)

NAME
       __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc > -

SYNOPSIS
       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 (const _Alloc &__a)
       __rc_string_base (const __rc_string_base &__rcs)
       __rc_string_base (__rc_string_base &&__rcs)
       __rc_string_base (size_type __n, _CharT __c, const _Alloc &__a)
       template<typename _InputIterator > __rc_string_base (_InputIterator
	   __beg, _InputIterator __end, 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
       template<> bool _M_compare (const __rc_string_base &__rcs) const
       template<> 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)
       template<typename _Iterator > static void _S_copy_chars (_CharT *__p,
	   _Iterator __k1, _Iterator __k2)
       static void _S_copy_chars (_CharT *__p, __sso_iterator __k1,
	   __sso_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, __const_rc_iterator __k1,
	   __const_rc_iterator __k2)
       static void _S_copy_chars (_CharT *__p, _CharT *__k1, _CharT *__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.

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

libstdc++	     __gnu_cxx::__rc_string_base< _CharT, _Traits, _Alloc >(3)
[top]

List of man pages available for RedHat

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net