libstdc++
std::basic_ostream< _CharT, _Traits > Class Template Reference
Inheritance diagram for std::basic_ostream< _CharT, _Traits >:
[legend]

Classes

class  sentry
 

Public Types

typedef ctype< _CharT > __ctype_type
 
typedef basic_ios< _CharT, _Traits > __ios_type
 
typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
 
typedef basic_ostream< _CharT, _Traits > __ostream_type
 
typedef basic_streambuf< _CharT, _Traits > __streambuf_type
 
typedef _CharT char_type
 
typedef _Traits::int_type int_type
 
typedef _Traits::off_type off_type
 
typedef _Traits::pos_type pos_type
 
typedef _Traits traits_type
 

Public Member Functions

 basic_ostream (__streambuf_type *__sb)
 
virtual ~basic_ostream ()
 
template<typename _ValueT >
basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v)
 
__ostream_typeoperator<< (__ios_type &(*__pf)(__ios_type &))
 
__ostream_typeoperator<< (__ostream_type &(*__pf)(__ostream_type &))
 
__ostream_typeoperator<< (ios_base &(*__pf)(ios_base &))
 

Friends

class sentry
 

Unformatted Output Functions

All the unformatted output functions have some common behavior. Each starts by constructing a temporary object of type std::basic_ostream::sentry. This has several effects, concluding with the setting of a status flag; see the sentry documentation for more.

If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument.

If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. If badbit is on in the stream's exceptions mask, the exception will be rethrown without completing its actions.

__ostream_typeput (char_type __c)
 
void _M_write (const char_type *__s, streamsize __n)
 
__ostream_typewrite (const char_type *__s, streamsize __n)
 
__ostream_typeflush ()
 
pos_type tellp ()
 
__ostream_typeseekp (pos_type)
 
__ostream_typeseekp (off_type, ios_base::seekdir)
 
 basic_ostream ()
 
 basic_ostream (basic_iostream< _CharT, _Traits > &)
 
 basic_ostream (const basic_ostream &)=delete
 
 basic_ostream (basic_ostream &&__rhs)
 
basic_ostreamoperator= (const basic_ostream &)=delete
 
basic_ostreamoperator= (basic_ostream &&__rhs)
 
void swap (basic_ostream &__rhs)
 
template<typename _ValueT >
__ostream_type_M_insert (_ValueT __v)
 

Detailed Description

template<typename _CharT, typename _Traits>
class std::basic_ostream< _CharT, _Traits >

Template class basic_ostream.

Template Parameters
_CharTType of character stream.
_TraitsTraits for character type, defaults to char_traits<_CharT>.

This is the base class for all output streams. It provides text formatting of all builtin types, and communicates with any class derived from basic_streambuf to do the actual output.

Definition at line 86 of file iosfwd.

Constructor & Destructor Documentation

◆ basic_ostream() [1/5]

template<typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits >::basic_ostream ( __streambuf_type __sb)
inlineexplicit

Base constructor.

This ctor is almost never called by the user directly, rather from derived classes' initialization lists, which pass a pointer to their own stream buffer.

Definition at line 84 of file ostream.

◆ ~basic_ostream()

template<typename _CharT , typename _Traits >
virtual std::basic_ostream< _CharT, _Traits >::~basic_ostream ( )
inlinevirtual

Base destructor.

This does very little apart from providing a virtual base dtor.

Definition at line 93 of file ostream.

◆ basic_ostream() [2/5]

template<typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits >::basic_ostream ( )
inlineprotected

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

Definition at line 390 of file ostream.

◆ basic_ostream() [3/5]

template<typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits >::basic_ostream ( basic_iostream< _CharT, _Traits > &  )
inlineprotected

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

Definition at line 395 of file ostream.

◆ basic_ostream() [4/5]

template<typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits >::basic_ostream ( const basic_ostream< _CharT, _Traits > &  )
protecteddelete

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

◆ basic_ostream() [5/5]

template<typename _CharT , typename _Traits >
std::basic_ostream< _CharT, _Traits >::basic_ostream ( basic_ostream< _CharT, _Traits > &&  __rhs)
inlineprotected

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

Definition at line 399 of file ostream.

Member Function Documentation

◆ _M_insert()

template<typename _CharT , typename _Traits >
template<typename _ValueT >
__ostream_type& std::basic_ostream< _CharT, _Traits >::_M_insert ( _ValueT  __v)
protected

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

Referenced by std::basic_ostream< char >::operator<<().

◆ _M_write()

template<typename _CharT , typename _Traits >
void std::basic_ostream< _CharT, _Traits >::_M_write ( const char_type *  __s,
streamsize  __n 
)
inline

Core write functionality, without sentry.

Parameters
__sThe array to insert.
__nMaximum number of characters to insert.

Definition at line 317 of file ostream.

◆ flush()

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush

Synchronizing the stream buffer.

Returns
*this

If rdbuf() is a null pointer, changes nothing.

Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit.

Definition at line 211 of file ostream.tcc.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().

◆ operator<<() [1/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( __ostream_type &(*)(__ostream_type &)  __pf)
inline

Interface for manipulators.

Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For more information, see the iomanip header.

Definition at line 108 of file ostream.

◆ operator<<() [2/15]

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< ( __streambuf_type __sb)

Extracting from another streambuf.

Parameters
__sbA pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the same error handling behavior.

If __sb is NULL, the stream will set failbit in its error state.

Characters are extracted from __sb and inserted into *this until one of the following occurs:

  • the input stream reaches end-of-file,
  • insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted), or
  • an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

Definition at line 120 of file ostream.tcc.

◆ operator<<() [3/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( bool  __n)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 174 of file ostream.

◆ operator<<() [4/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( const void *  __p)
inline

Pointer arithmetic inserters.

Parameters
__pA variable of pointer type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 245 of file ostream.

◆ operator<<() [5/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( double  __f)
inline

Floating point arithmetic inserters.

Parameters
__fA variable of builtin floating point type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 220 of file ostream.

◆ operator<<() [6/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( float  __f)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 224 of file ostream.

◆ operator<<() [7/15]

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< ( int  __n)

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 106 of file ostream.tcc.

◆ operator<<() [8/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( long  __n)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 166 of file ostream.

◆ operator<<() [9/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( long double  __f)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 232 of file ostream.

◆ operator<<() [10/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( long long  __n)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 201 of file ostream.

◆ operator<<() [11/15]

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< ( short  __n)

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 92 of file ostream.tcc.

◆ operator<<() [12/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( unsigned int  __n)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 192 of file ostream.

◆ operator<<() [13/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( unsigned long  __n)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 170 of file ostream.

◆ operator<<() [14/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( unsigned long long  __n)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 205 of file ostream.

◆ operator<<() [15/15]

template<typename _CharT , typename _Traits >
__ostream_type& std::basic_ostream< _CharT, _Traits >::operator<< ( unsigned short  __n)
inline

Integer arithmetic inserters.

Parameters
__nA variable of builtin integral type.
Returns
*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

Definition at line 181 of file ostream.

◆ operator=() [1/2]

template<typename _CharT , typename _Traits >
basic_ostream& std::basic_ostream< _CharT, _Traits >::operator= ( basic_ostream< _CharT, _Traits > &&  __rhs)
inlineprotected

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

Definition at line 408 of file ostream.

◆ operator=() [2/2]

template<typename _CharT , typename _Traits >
basic_ostream& std::basic_ostream< _CharT, _Traits >::operator= ( const basic_ostream< _CharT, _Traits > &  )
protecteddelete

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

◆ put()

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put ( char_type  __c)

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

Definition at line 149 of file ostream.tcc.

◆ seekp() [1/2]

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp ( off_type  __off,
ios_base::seekdir  __dir 
)

Changing the current write position.

Parameters
__offA file offset object.
__dirThe direction in which to seek.
Returns
*this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.

Definition at line 290 of file ostream.tcc.

◆ seekp() [2/2]

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp ( pos_type  __pos)

Changing the current write position.

Parameters
__posA file position object.
Returns
*this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.

Definition at line 258 of file ostream.tcc.

◆ swap()

template<typename _CharT , typename _Traits >
void std::basic_ostream< _CharT, _Traits >::swap ( basic_ostream< _CharT, _Traits > &  __rhs)
inlineprotected

Simple insertion.

Parameters
__cThe character to insert.
Returns
*this

Tries to insert __c.

Note
This function is not overloaded on signed char and unsigned char.

Definition at line 415 of file ostream.

◆ tellp()

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp

Getting the current write position.

Returns
A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).

Definition at line 237 of file ostream.tcc.

◆ write()

template<typename _CharT , typename _Traits >
basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write ( const char_type *  __s,
streamsize  __n 
)

Character string insertion.

Parameters
__sThe array to insert.
__nMaximum number of characters to insert.
Returns
*this

Characters are copied from __s and inserted into the stream until one of the following happens:

  • __n characters are inserted
  • inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)
Note
This function is not overloaded on signed char and unsigned char.

Definition at line 183 of file ostream.tcc.


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