std::num_put< _CharT, _OutIter > Class Template Reference

Facet for converting numbers to strings. More...

#include <locale_facets.h>

Inheritance diagram for std::num_put< _CharT, _OutIter >:

std::locale::facet List of all members.

Public Types

typedef _CharT char_type
 Public typedefs.

typedef _OutIter iter_type

Public Member Functions

 num_put (size_t __refs=0)
 Constructor performs initialization.

iter_type put (iter_type __s, ios_base &__f, char_type __fill, bool __v) const
 Numeric formatting.

iter_type put (iter_type __s, ios_base &__f, char_type __fill, const void *__v) const
 Numeric formatting.

iter_type put (iter_type __s, ios_base &__f, char_type __fill, long __v) const
 Numeric formatting.

iter_type put (iter_type __s, ios_base &__f, char_type __fill, unsigned long __v) const
iter_type put (iter_type __s, ios_base &__f, char_type __fill, double __v) const
 Numeric formatting.

iter_type put (iter_type __s, ios_base &__f, char_type __fill, long double __v) const

Static Public Attributes

locale::id id
 Numpunct facet id.


Protected Member Functions

template<typename _ValueT> iter_type _M_insert_float (iter_type, ios_base &__io, char_type __fill, char __mod, _ValueT __v) const
void _M_group_float (const char *__grouping, size_t __grouping_size, char_type __sep, const char_type *__p, char_type *__new, char_type *__cs, int &__len) const
template<typename _ValueT> iter_type _M_insert_int (iter_type, ios_base &__io, char_type __fill, _ValueT __v) const
void _M_group_int (const char *__grouping, size_t __grouping_size, char_type __sep, ios_base &__io, char_type *__new, char_type *__cs, int &__len) const
void _M_pad (char_type __fill, streamsize __w, ios_base &__io, char_type *__new, const char_type *__cs, int &__len) const
virtual ~num_put ()
 Destructor.

virtual iter_type do_put (iter_type, ios_base &, char_type __fill, bool __v) const
 Numeric formatting.

virtual iter_type do_put (iter_type, ios_base &, char_type __fill, long __v) const
virtual iter_type do_put (iter_type, ios_base &, char_type __fill, unsigned long) const
virtual iter_type do_put (iter_type, ios_base &, char_type __fill, double __v) const
virtual iter_type do_put (iter_type, ios_base &, char_type __fill, long double __v) const
virtual iter_type do_put (iter_type, ios_base &, char_type __fill, const void *__v) const

Detailed Description

template<typename _CharT, typename _OutIter>
class std::num_put< _CharT, _OutIter >

Facet for converting numbers to strings.

This facet encapsulates the code to convert a number to a string. It is used by the ostream numeric insertion operators.

The num_put template uses protected virtual functions to provide the actual results. The public accessors forward the call to the virtual functions. These virtual functions are hooks for developers to implement the behavior they require from the num_put facet.

Definition at line 2681 of file locale_facets.h.


Member Typedef Documentation

template<typename _CharT, typename _OutIter>
typedef _CharT std::num_put< _CharT, _OutIter >::char_type
 

Public typedefs.

Definition at line 2687 of file locale_facets.h.

template<typename _CharT, typename _OutIter>
typedef _OutIter std::num_put< _CharT, _OutIter >::iter_type
 

Definition at line 2688 of file locale_facets.h.


Constructor & Destructor Documentation

template<typename _CharT, typename _OutIter>
std::num_put< _CharT, _OutIter >::num_put size_t  __refs = 0  )  [inline, explicit]
 

Constructor performs initialization.

This is the constructor provided by the standard.

Parameters:
refs Passed to the base facet class.

Definition at line 2702 of file locale_facets.h.

template<typename _CharT, typename _OutIter>
virtual std::num_put< _CharT, _OutIter >::~num_put  )  [inline, protected, virtual]
 

Destructor.

Definition at line 2881 of file locale_facets.h.


Member Function Documentation

template<typename _CharT, typename _OutIter>
void std::num_put< _CharT, _OutIter >::_M_group_float const char *  __grouping,
size_t  __grouping_size,
char_type  __sep,
const char_type __p,
char_type __new,
char_type __cs,
int &  __len
const [protected]
 

template<typename _CharT, typename _OutIter>
void std::num_put< _CharT, _OutIter >::_M_group_int const char *  __grouping,
size_t  __grouping_size,
char_type  __sep,
ios_base __io,
char_type __new,
char_type __cs,
int &  __len
const [protected]
 

template<typename _CharT, typename _OutIter>
template<typename _ValueT>
iter_type std::num_put< _CharT, _OutIter >::_M_insert_float iter_type  ,
ios_base __io,
char_type  __fill,
char  __mod,
_ValueT  __v
const [protected]
 

Referenced by std::num_put< _CharT, _OutIter >::do_put().

template<typename _CharT, typename _OutIter>
template<typename _ValueT>
iter_type std::num_put< _CharT, _OutIter >::_M_insert_int iter_type  ,
ios_base __io,
char_type  __fill,
_ValueT  __v
const [protected]
 

Referenced by std::num_put< _CharT, _OutIter >::do_put().

template<typename _CharT, typename _OutIter>
void std::num_put< _CharT, _OutIter >::_M_pad char_type  __fill,
streamsize  __w,
ios_base __io,
char_type __new,
const char_type __cs,
int &  __len
const [protected]
 

Referenced by std::num_put< _CharT, _OutIter >::do_put().

template<typename _CharT, typename _OutIter>
_OutIter std::num_put< _CharT, _OutIter >::do_put iter_type  ,
ios_base ,
char_type  __fill,
const void *  __v
const [protected, virtual]
 

Definition at line 1228 of file locale_facets.tcc.

References std::num_put< _CharT, _OutIter >::_M_insert_int(), std::ios_base::flags(), and std::ios_base::fmtflags.

template<typename _CharT, typename _OutIter>
_OutIter std::num_put< _CharT, _OutIter >::do_put iter_type  ,
ios_base ,
char_type  __fill,
long double  __v
const [protected, virtual]
 

Definition at line 1221 of file locale_facets.tcc.

References std::num_put< _CharT, _OutIter >::_M_insert_float().

template<typename _CharT, typename _OutIter>
_OutIter std::num_put< _CharT, _OutIter >::do_put iter_type  ,
ios_base ,
char_type  __fill,
double  __v
const [protected, virtual]
 

Definition at line 1215 of file locale_facets.tcc.

References std::num_put< _CharT, _OutIter >::_M_insert_float().

template<typename _CharT, typename _OutIter>
_OutIter std::num_put< _CharT, _OutIter >::do_put iter_type  ,
ios_base ,
char_type  __fill,
unsigned  long
const [protected, virtual]
 

Definition at line 1193 of file locale_facets.tcc.

References std::num_put< _CharT, _OutIter >::_M_insert_int().

template<typename _CharT, typename _OutIter>
_OutIter std::num_put< _CharT, _OutIter >::do_put iter_type  ,
ios_base ,
char_type  __fill,
long  __v
const [protected, virtual]
 

Definition at line 1187 of file locale_facets.tcc.

References std::num_put< _CharT, _OutIter >::_M_insert_int().

template<typename _CharT, typename _OutIter>
_OutIter std::num_put< _CharT, _OutIter >::do_put iter_type  ,
ios_base ,
char_type  __fill,
bool  __v
const [protected, virtual]
 

Numeric formatting.

These functions do the work of formatting numeric values and inserting them into a stream. This function is a hook for derived classes to change the value returned.

Parameters:
s Stream to write to.
io Source of locale and flags.
fill Char_type to use for filling.
v Value to format and insert.
Returns:
Iterator after writing.

Definition at line 1149 of file locale_facets.tcc.

References std::__write(), std::ios_base::_M_getloc(), std::num_put< _CharT, _OutIter >::_M_insert_int(), std::num_put< _CharT, _OutIter >::_M_pad(), std::ios_base::flags(), std::ios_base::fmtflags, std::streamsize, and std::ios_base::width().

Referenced by std::numpunct< _CharT >::do_decimal_point(), std::numpunct< _CharT >::do_thousands_sep(), std::numpunct< _CharT >::grouping(), and std::numpunct_byname< _CharT >::numpunct_byname().

template<typename _CharT, typename _OutIter>
iter_type std::num_put< _CharT, _OutIter >::put iter_type  __s,
ios_base __f,
char_type  __fill,
const void *  __v
const [inline]
 

Numeric formatting.

Formats the pointer value v and inserts it into a stream. It does so by calling num_put::do_put().

This function formats v as an unsigned long with ios_base::hex and ios_base::showbase set.

Parameters:
s Stream to write to.
io Source of locale and flags.
fill Char_type to use for filling.
v Value to format and insert.
Returns:
Iterator after writing.

Definition at line 2850 of file locale_facets.h.

template<typename _CharT, typename _OutIter>
iter_type std::num_put< _CharT, _OutIter >::put iter_type  __s,
ios_base __f,
char_type  __fill,
long double  __v
const [inline]
 

Definition at line 2829 of file locale_facets.h.

template<typename _CharT, typename _OutIter>
iter_type std::num_put< _CharT, _OutIter >::put iter_type  __s,
ios_base __f,
char_type  __fill,
double  __v
const [inline]
 

Numeric formatting.

Formats the floating point value v and inserts it into a stream. It does so by calling num_put::do_put().

Formatting is affected by the flag settings in io.

The basic format is affected by the value of io.flags() & ios_base::floatfield. If equal to ios_base::fixed, formats like the printf f specifier. Else if equal to ios_base::scientific, formats like e or E with ios_base::uppercase unset or set respectively. Otherwise, formats like g or G depending on uppercase. Note that if both fixed and scientific are set, the effect will also be like g or G.

The output precision is given by io.precision(). This precision is capped at numeric_limits::digits10 + 2 (different for double and long double). The default precision is 6.

If ios_base::showpos is set, '+' is output before positive values. If ios_base::showpoint is set, a decimal point will always be output.

Thousands separators are inserted according to numpunct::grouping() and numpunct::thousands_sep(). The decimal point character used is numpunct::decimal_point().

If io.width() is non-zero, enough fill characters are inserted to make the result at least that wide. If (io.flags() & ios_base::adjustfield) == ios_base::left, result is padded at the end. If ios_base::internal, then padding occurs immediately after either a '+' or '-' or after '0x' or '0X'. Otherwise, padding occurs at the beginning.

Parameters:
s Stream to write to.
io Source of locale and flags.
fill Char_type to use for filling.
v Value to format and insert.
Returns:
Iterator after writing.

Definition at line 2825 of file locale_facets.h.

template<typename _CharT, typename _OutIter>
iter_type std::num_put< _CharT, _OutIter >::put iter_type  __s,
ios_base __f,
char_type  __fill,
unsigned long  __v
const [inline]
 

Definition at line 2766 of file locale_facets.h.

template<typename _CharT, typename _OutIter>
iter_type std::num_put< _CharT, _OutIter >::put iter_type  __s,
ios_base __f,
char_type  __fill,
long  __v
const [inline]
 

Numeric formatting.

Formats the integral value v and inserts it into a stream. It does so by calling num_put::do_put().

Formatting is affected by the flag settings in io.

The basic format is affected by the value of io.flags() & ios_base::basefield. If equal to ios_base::oct, formats like the printf o specifier. Else if equal to ios_base::hex, formats like x or X with ios_base::uppercase unset or set respectively. Otherwise, formats like d, ld, lld for signed and u, lu, llu for unsigned values. Note that if both oct and hex are set, neither will take effect.

If ios_base::showpos is set, '+' is output before positive values. If ios_base::showbase is set, '0' precedes octal values (except 0) and '0[xX]' precedes hex values.

Thousands separators are inserted according to numpunct::grouping() and numpunct::thousands_sep(). The decimal point character used is numpunct::decimal_point().

If io.width() is non-zero, enough fill characters are inserted to make the result at least that wide. If (io.flags() & ios_base::adjustfield) == ios_base::left, result is padded at the end. If ios_base::internal, then padding occurs immediately after either a '+' or '-' or after '0x' or '0X'. Otherwise, padding occurs at the beginning.

Parameters:
s Stream to write to.
io Source of locale and flags.
fill Char_type to use for filling.
v Value to format and insert.
Returns:
Iterator after writing.

Definition at line 2762 of file locale_facets.h.

template<typename _CharT, typename _OutIter>
iter_type std::num_put< _CharT, _OutIter >::put iter_type  __s,
ios_base __f,
char_type  __fill,
bool  __v
const [inline]
 

Numeric formatting.

Formats the boolean v and inserts it into a stream. It does so by calling num_put::do_put().

If ios_base::boolalpha is set, writes ctype<CharT>::truename() or ctype<CharT>::falsename(). Otherwise formats v as an int.

Parameters:
s Stream to write to.
io Source of locale and flags.
fill Char_type to use for filling.
v Value to format and insert.
Returns:
Iterator after writing.

Definition at line 2720 of file locale_facets.h.


Member Data Documentation

template<typename _CharT, typename _OutIter>
locale::id std::num_put< _CharT, _OutIter >::id [static]
 

Numpunct facet id.

Definition at line 2926 of file locale_facets.h.


The documentation for this class was generated from the following files:
Generated on Tue Jan 30 17:32:14 2007 for GNU C++ STL by doxygen 1.3.6