BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > Class Template Reference

#include <bslstl_stringbuf.h>

Inheritance diagram for bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >:
bsl::basic_istringstream< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > bsl::basic_ostringstream< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > bsl::basic_stringstream< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >

Public Member Functions

 StringBufContainer (const ALLOCATOR &allocator)
 
 StringBufContainer (ios_base::openmode modeBitMask, const ALLOCATOR &allocator)
 
 StringBufContainer (const StringType &initialString, const ALLOCATOR &allocator)
 
 StringBufContainer (const StringType &initialString, ios_base::openmode modeBitMask, const ALLOCATOR &allocator)
 
 StringBufContainer (BloombergLP::bslmf::MovableRef< StringType > initialString, ios_base::openmode modeBitMask, const ALLOCATOR &allocator)
 
 StringBufContainer (BloombergLP::bslmf::MovableRef< StringType > initialString, ios_base::openmode modeBitMask)
 
template<class STRING_ITER >
 StringBufContainer (STRING_ITER first, STRING_ITER last, ios_base::openmode modeBitMask, const ALLOCATOR &allocator)
 
 ~StringBufContainer ()=default
 
void swap (StringBufContainer &other)
 
StreamBufTyperdbuf () const
 

Detailed Description

template<class CHAR_TYPE, class CHAR_TRAITS, class ALLOCATOR>
class bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >

This class enables the implementation of string-stream types by providing a trivial type containing a basic_stringbuf that is suitable as a (private) base class for a string-stream. Inheriting from StringBufContainer allows the string-stream to ensure that the contained basic_stringbuf is initialized before initializing other base classes or data members without potentially overriding virtual methods in the basic_stringbuf type. Note that implementations of string-stream types must pass the address of a string-buffer to their public base class (e.g., basic_stream ), so the string-stream must ensure (using private inheritance) that the string-buffer is initialized before constructing the public base class. If a string-stream implementation were to directly inherit from basic_streambuf , then virtual methods defined in that string-stream (e.g., underflow) might incorrectly override those in the basic_stringbuf implementation.

See bslstl_stringbuf

Constructor & Destructor Documentation

◆ StringBufContainer() [1/7]

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::StringBufContainer ( const ALLOCATOR &  allocator)
inlineexplicit

◆ StringBufContainer() [2/7]

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::StringBufContainer ( ios_base::openmode  modeBitMask,
const ALLOCATOR &  allocator 
)
inline

◆ StringBufContainer() [3/7]

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::StringBufContainer ( const StringType initialString,
const ALLOCATOR &  allocator 
)
inline

◆ StringBufContainer() [4/7]

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::StringBufContainer ( const StringType initialString,
ios_base::openmode  modeBitMask,
const ALLOCATOR &  allocator 
)
inline

◆ StringBufContainer() [5/7]

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::StringBufContainer ( BloombergLP::bslmf::MovableRef< StringType initialString,
ios_base::openmode  modeBitMask,
const ALLOCATOR &  allocator 
)
inline

◆ StringBufContainer() [6/7]

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::StringBufContainer ( BloombergLP::bslmf::MovableRef< StringType initialString,
ios_base::openmode  modeBitMask 
)
inline

◆ StringBufContainer() [7/7]

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
template<class STRING_ITER >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::StringBufContainer ( STRING_ITER  first,
STRING_ITER  last,
ios_base::openmode  modeBitMask,
const ALLOCATOR &  allocator 
)
inline

◆ ~StringBufContainer()

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::~StringBufContainer ( )
default

Member Function Documentation

◆ rdbuf()

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
StreamBufType * bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::rdbuf ( ) const
inline

◆ swap()

template<class CHAR_TYPE , class CHAR_TRAITS , class ALLOCATOR >
void bsl::StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR >::swap ( StringBufContainer< CHAR_TYPE, CHAR_TRAITS, ALLOCATOR > &  other)
inline

Efficiently exchange the value of this object with the value of the specified other object.


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