# 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 >:

[legend]
Collaboration diagram for std::num_put< CharT, OutIter >:

[legend]
List of all members.

## Public Types

typedef CharT | char_type
| Public typedefs.
typedef OutIter | iter_type
| Public typedefs.

## 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
| Numeric formatting.
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
| Numeric formatting.

## Static Public Attributes

locale::id | id
| Numpunct facet id.

## Protected Member Functions

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
| Numeric formatting.
virtual iter_type | do_put (iter_type, ios_base &, char_type __fill, unsigned long) const
| Numeric formatting.
virtual iter_type | do_put (iter_type, ios_base &, char_type __fill, double __v) const
| Numeric formatting.
virtual iter_type | do_put (iter_type, ios_base &, char_type __fill, long double __v) const
| Numeric formatting.
virtual iter_type | do_put (iter_type, ios_base &, char_type __fill, const void *__v) const
| Numeric formatting.

## 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 2208 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 2214 of file locale_facets.h.

template<typename CharT, typename OutIter>
typedef OutIter std::num_put< CharT, OutIter >::iter_type

| Public typedefs. Definition at line 2215 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 2229 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 2408 of file locale_facets.h.

## Member Function Documentation

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]`

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 1236 of file locale_facets.tcc.

References std::ios_base::flags().

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]`

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 1229 of file locale_facets.tcc.

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]`

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 1223 of file locale_facets.tcc.

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]`

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 1201 of file locale_facets.tcc.

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]`

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 1195 of file locale_facets.tcc.

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 1157 of file locale_facets.tcc.

References std::ios_base::flags(), std::ios_base::fmtflags, std::streamsize, and std::ios_base::width().

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 2377 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]`

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 2356 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 2352 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]`

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 2293 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 2289 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 2247 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 2453 of file locale_facets.h.

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

- locale_facets.h
- locale_facets.tcc