Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::container::container_detail::basic_string_base< Allocator > Class Template Reference

#include <string.hpp>

Inheritance diagram for boost::container::container_detail::basic_string_base< Allocator >:
Collaboration diagram for boost::container::container_detail::basic_string_base< Allocator >:

Classes

struct  members_holder
 
union  repr_t
 
struct  short_t
 

Public Types

typedef Allocator allocator_type
 
typedef allocator_type stored_allocator_type
 
typedef
allocator_traits_type::pointer 
pointer
 
typedef
allocator_traits_type::value_type 
value_type
 
typedef
allocator_traits_type::size_type 
size_type
 
typedef
::boost::intrusive::pointer_traits
< pointer
pointer_traits
 

Public Member Functions

 basic_string_base ()
 
 basic_string_base (const allocator_type &a)
 
 basic_string_base (BOOST_RV_REF(allocator_type) a)
 
 basic_string_base (const allocator_type &a, size_type n)
 
 ~basic_string_base ()
 

Protected Types

typedef
container_detail::integral_constant
< unsigned, 1 > 
allocator_v1
 
typedef
container_detail::integral_constant
< unsigned, 2 > 
allocator_v2
 
typedef
container_detail::integral_constant
< unsigned,
boost::container::container_detail::version
< Allocator >::value > 
alloc_version
 

Protected Member Functions

const Allocator & alloc () const
 
Allocator & alloc ()
 
bool is_short () const
 
void is_short (bool yes)
 
std::pair< pointer, bool > allocation_command (allocation_type command, size_type limit_size, size_type preferred_size, size_type &received_size, pointer reuse=0)
 
size_type next_capacity (size_type additional_objects) const
 
void deallocate (pointer p, size_type n)
 
void construct (pointer p, const value_type &value=value_type())
 
void destroy (pointer p, size_type n)
 
void destroy (pointer p)
 
void allocate_initial_block (size_type n)
 
void deallocate_block ()
 
size_type max_size () const
 
size_type priv_capacity () const
 
pointer priv_short_addr () const
 
pointer priv_long_addr () const
 
pointer priv_addr () const
 
pointer priv_end_addr () const
 
void priv_long_addr (pointer addr)
 
size_type priv_storage () const
 
size_type priv_short_storage () const
 
size_type priv_long_storage () const
 
void priv_storage (size_type storage)
 
void priv_long_storage (size_type storage)
 
size_type priv_size () const
 
size_type priv_short_size () const
 
size_type priv_long_size () const
 
void priv_size (size_type sz)
 
void priv_short_size (size_type sz)
 
void priv_long_size (size_type sz)
 
void swap_data (basic_string_base &other)
 

Protected Attributes

boost::container::container_detail::basic_string_base::members_holder members_
 

Static Protected Attributes

static const size_type MinInternalBufferChars = 8
 
static const size_type AlignmentOfValueType
 
static const size_type ShortDataOffset
 
static const size_type ZeroCostInternalBufferChars
 
static const size_type UnalignedFinalInternalBufferChars
 
static const size_type InternalBufferChars = (sizeof(repr_t) - ShortDataOffset)/sizeof(value_type)
 

Member Typedef Documentation

template<class Allocator>
typedef container_detail::integral_constant<unsigned, boost::container::container_detail::version<Allocator>::value> boost::container::container_detail::basic_string_base< Allocator >::alloc_version
protected
template<class Allocator>
typedef Allocator boost::container::container_detail::basic_string_base< Allocator >::allocator_type
template<class Allocator>
typedef container_detail::integral_constant<unsigned, 1> boost::container::container_detail::basic_string_base< Allocator >::allocator_v1
protected
template<class Allocator>
typedef container_detail::integral_constant<unsigned, 2> boost::container::container_detail::basic_string_base< Allocator >::allocator_v2
protected
template<class Allocator>
typedef allocator_traits_type::pointer boost::container::container_detail::basic_string_base< Allocator >::pointer
template<class Allocator>
typedef allocator_traits_type::size_type boost::container::container_detail::basic_string_base< Allocator >::size_type

Constructor & Destructor Documentation

template<class Allocator>
boost::container::container_detail::basic_string_base< Allocator >::basic_string_base ( )
inline
template<class Allocator>
boost::container::container_detail::basic_string_base< Allocator >::basic_string_base ( const allocator_type a)
inline

Member Function Documentation

template<class Allocator>
Allocator& boost::container::container_detail::basic_string_base< Allocator >::alloc ( )
inlineprotected
template<class Allocator>
pointer boost::container::container_detail::basic_string_base< Allocator >::priv_addr ( ) const
inlineprotected

References boost::container::container_detail::basic_string_base< Allocator >::is_short(), boost::container::container_detail::basic_string_base< Allocator >::priv_long_addr(), and boost::container::container_detail::basic_string_base< Allocator >::priv_short_addr().

Referenced by boost::container::basic_string< CharT, Traits, Allocator >::assign(), boost::container::basic_string< CharT, Traits, Allocator >::at(), boost::container::basic_string< CharT, Traits, Allocator >::begin(), boost::container::basic_string< CharT, Traits, Allocator >::c_str(), boost::container::basic_string< CharT, Traits, Allocator >::cbegin(), boost::container::basic_string< CharT, Traits, Allocator >::clear(), boost::container::basic_string< CharT, Traits, Allocator >::compare(), boost::container::basic_string< CharT, Traits, Allocator >::copy(), boost::container::basic_string< CharT, Traits, Allocator >::crend(), boost::container::basic_string< CharT, Traits, Allocator >::data(), boost::container::container_detail::basic_string_base< Allocator >::deallocate_block(), boost::container::basic_string< CharT, Traits, Allocator >::erase(), boost::container::basic_string< CharT, Traits, Allocator >::find(), boost::container::basic_string< CharT, Traits, Allocator >::find_first_not_of(), boost::container::basic_string< CharT, Traits, Allocator >::find_first_of(), boost::container::basic_string< CharT, Traits, Allocator >::find_last_of(), boost::container::basic_string< CharT, Traits, Allocator >::insert(), boost::container::basic_string< CharT, Traits, Allocator >::operator=(), boost::container::basic_string< CharT, Traits, Allocator >::operator[](), boost::container::basic_string< CharT, Traits, Allocator >::pop_back(), boost::container::basic_string< CharT, Traits, Allocator >::push_back(), boost::container::basic_string< CharT, Traits, Allocator >::rend(), boost::container::basic_string< CharT, Traits, Allocator >::replace(), and boost::container::basic_string< CharT, Traits, Allocator >::substr().

Member Data Documentation

template<class Allocator>
const size_type boost::container::container_detail::basic_string_base< Allocator >::AlignmentOfValueType
staticprotected
template<class Allocator>
const size_type boost::container::container_detail::basic_string_base< Allocator >::InternalBufferChars = (sizeof(repr_t) - ShortDataOffset)/sizeof(value_type)
staticprotected
template<class Allocator>
const size_type boost::container::container_detail::basic_string_base< Allocator >::MinInternalBufferChars = 8
staticprotected
template<class Allocator>
const size_type boost::container::container_detail::basic_string_base< Allocator >::ShortDataOffset
staticprotected
template<class Allocator>
const size_type boost::container::container_detail::basic_string_base< Allocator >::UnalignedFinalInternalBufferChars
staticprotected
template<class Allocator>
const size_type boost::container::container_detail::basic_string_base< Allocator >::ZeroCostInternalBufferChars
staticprotected
Initial value:
=
(sizeof(long_t) - ShortDataOffset)/sizeof(value_type)

The documentation for this class was generated from the following file: