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

Public Types

enum  { _S_minus, _S_zero, _S_end }
 
typedef __moneypunct_cache
< _CharT, _Intl > 
__cache_type
 
enum  part {
  none, space, symbol, sign,
  value
}
 
typedef _CharT char_type
 
typedef basic_string< _CharT > string_type
 

Public Member Functions

 moneypunct (size_t __refs=0)
 
 moneypunct (__cache_type *__cache, size_t __refs=0)
 
 moneypunct (__c_locale __cloc, const char *__s, size_t __refs=0)
 
string_type curr_symbol () const
 
char_type decimal_point () const
 
int frac_digits () const
 
string grouping () const
 
string_type negative_sign () const
 
string_type positive_sign () const
 
char_type thousands_sep () const
 
pattern pos_format () const
 
pattern neg_format () const
 

Static Public Member Functions

static pattern _S_construct_pattern (char __precedes, char __space, char __posn) throw ()
 

Static Public Attributes

static const char * _S_atoms
 
static const pattern _S_default_pattern
 
static locale::id id
 
static const bool intl
 

Protected Member Functions

virtual ~moneypunct ()
 
void _M_initialize_moneypunct (__c_locale __cloc=0, const char *__name=0)
 
template<>
void _M_initialize_moneypunct (__c_locale, const char *)
 
template<>
void _M_initialize_moneypunct (__c_locale, const char *)
 
template<>
void _M_initialize_moneypunct (__c_locale, const char *)
 
template<>
void _M_initialize_moneypunct (__c_locale, const char *)
 
virtual string_type do_curr_symbol () const
 
virtual char_type do_decimal_point () const
 
virtual int do_frac_digits () const
 
virtual string do_grouping () const
 
virtual pattern do_neg_format () const
 
virtual string_type do_negative_sign () const
 
virtual pattern do_pos_format () const
 
virtual string_type do_positive_sign () const
 
virtual char_type do_thousands_sep () const
 

Static Protected Member Functions

static __c_locale _S_clone_c_locale (__c_locale &__cloc) throw ()
 
static void _S_create_c_locale (__c_locale &__cloc, const char *__s, __c_locale __old=0)
 
static void _S_destroy_c_locale (__c_locale &__cloc)
 
static __c_locale _S_get_c_locale ()
 
static const char * _S_get_c_name () throw ()
 
static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const char *__s)
 

Detailed Description

template<typename _CharT, bool _Intl>
class std::moneypunct< _CharT, _Intl >

Primary class template moneypunct.

This facet encapsulates the punctuation, grouping and other formatting features of money amount string representations.

Definition at line 934 of file locale_facets_nonio.h.

Member Typedef Documentation

template<typename _CharT , bool _Intl>
typedef _CharT std::moneypunct< _CharT, _Intl >::char_type

Public typedefs.

Definition at line 940 of file locale_facets_nonio.h.

template<typename _CharT , bool _Intl>
typedef basic_string<_CharT> std::moneypunct< _CharT, _Intl >::string_type

Public typedefs.

Definition at line 941 of file locale_facets_nonio.h.

Constructor & Destructor Documentation

template<typename _CharT , bool _Intl>
std::moneypunct< _CharT, _Intl >::moneypunct ( size_t  __refs = 0)
inlineexplicit

Constructor performs initialization.

This is the constructor provided by the standard.

Parameters
__refsPassed to the base facet class.

Definition at line 963 of file locale_facets_nonio.h.

template<typename _CharT , bool _Intl>
std::moneypunct< _CharT, _Intl >::moneypunct ( __cache_type *  __cache,
size_t  __refs = 0 
)
inlineexplicit

Constructor performs initialization.

This is an internal constructor.

Parameters
__cacheCache for optimization.
__refsPassed to the base facet class.

Definition at line 976 of file locale_facets_nonio.h.

template<typename _CharT , bool _Intl>
std::moneypunct< _CharT, _Intl >::moneypunct ( __c_locale  __cloc,
const char *  __s,
size_t  __refs = 0 
)
inlineexplicit

Internal constructor. Not for general use.

This is a constructor for use by the library itself to set up new locales.

Parameters
__clocThe C locale.
__sThe name of a locale.
__refsPassed to the base facet class.

Definition at line 991 of file locale_facets_nonio.h.

template<typename _CharT , bool _Intl>
virtual std::moneypunct< _CharT, _Intl >::~moneypunct ( )
protectedvirtual

Destructor.

Member Function Documentation

template<typename _CharT , bool _Intl>
string_type std::moneypunct< _CharT, _Intl >::curr_symbol ( ) const
inline

Return currency symbol string.

This function returns a string_type to use as a currency symbol. It does so by returning returning moneypunct<char_type>::do_curr_symbol().

Returns
string_type representing a currency symbol.

Definition at line 1061 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_curr_symbol().

template<typename _CharT , bool _Intl>
char_type std::moneypunct< _CharT, _Intl >::decimal_point ( ) const
inline

Return decimal point character.

This function returns a char_type to use as a decimal point. It does so by returning returning moneypunct<char_type>::do_decimal_point().

Returns
char_type representing a decimal point.

Definition at line 1005 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_decimal_point().

template<typename _CharT , bool _Intl>
virtual string_type std::moneypunct< _CharT, _Intl >::do_curr_symbol ( ) const
inlineprotectedvirtual

Return currency symbol string.

This function returns a string_type to use as a currency symbol. This function is a hook for derived classes to change the value returned.

See Also
curr_symbol() for details.
Returns
string_type representing a currency symbol.

Definition at line 1207 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::curr_symbol().

template<typename _CharT , bool _Intl>
virtual char_type std::moneypunct< _CharT, _Intl >::do_decimal_point ( ) const
inlineprotectedvirtual

Return decimal point character.

Returns a char_type to use as a decimal point. This function is a hook for derived classes to change the value returned.

Returns
char_type representing a decimal point.

Definition at line 1169 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::decimal_point().

template<typename _CharT , bool _Intl>
virtual int std::moneypunct< _CharT, _Intl >::do_frac_digits ( ) const
inlineprotectedvirtual

Return number of digits in fraction.

This function returns the exact number of digits that make up the fractional part of a money amount. This function is a hook for derived classes to change the value returned.

See Also
frac_digits() for details.
Returns
Number of digits in amount fraction.

Definition at line 1247 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::frac_digits().

template<typename _CharT , bool _Intl>
virtual string std::moneypunct< _CharT, _Intl >::do_grouping ( ) const
inlineprotectedvirtual

Return grouping specification.

Returns a string representing groupings for the integer part of a number. This function is a hook for derived classes to change the value returned.

See Also
grouping() for details.
Returns
String representing grouping specification.

Definition at line 1194 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::grouping().

template<typename _CharT , bool _Intl>
virtual pattern std::moneypunct< _CharT, _Intl >::do_neg_format ( ) const
inlineprotectedvirtual

Return pattern for money values.

This function returns a pattern describing the formatting of a negative valued money amount. This function is a hook for derived classes to change the value returned.

See Also
neg_format() for details.
Returns
Pattern for money values.

Definition at line 1275 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::neg_format().

template<typename _CharT , bool _Intl>
virtual string_type std::moneypunct< _CharT, _Intl >::do_negative_sign ( ) const
inlineprotectedvirtual

Return negative sign string.

This function returns a string_type to use as a sign for negative amounts. This function is a hook for derived classes to change the value returned.

See Also
negative_sign() for details.
Returns
string_type representing a negative sign.

Definition at line 1233 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::negative_sign().

template<typename _CharT , bool _Intl>
virtual pattern std::moneypunct< _CharT, _Intl >::do_pos_format ( ) const
inlineprotectedvirtual

Return pattern for money values.

This function returns a pattern describing the formatting of a positive valued money amount. This function is a hook for derived classes to change the value returned.

See Also
pos_format() for details.
Returns
Pattern for money values.

Definition at line 1261 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::pos_format().

template<typename _CharT , bool _Intl>
virtual string_type std::moneypunct< _CharT, _Intl >::do_positive_sign ( ) const
inlineprotectedvirtual

Return positive sign string.

This function returns a string_type to use as a sign for positive amounts. This function is a hook for derived classes to change the value returned.

See Also
positive_sign() for details.
Returns
string_type representing a positive sign.

Definition at line 1220 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::positive_sign().

template<typename _CharT , bool _Intl>
virtual char_type std::moneypunct< _CharT, _Intl >::do_thousands_sep ( ) const
inlineprotectedvirtual

Return thousands separator character.

Returns a char_type to use as a thousands separator. This function is a hook for derived classes to change the value returned.

Returns
char_type representing a thousands separator.

Definition at line 1181 of file locale_facets_nonio.h.

Referenced by std::moneypunct< _CharT, _Intl >::thousands_sep().

template<typename _CharT , bool _Intl>
int std::moneypunct< _CharT, _Intl >::frac_digits ( ) const
inline

Return number of digits in fraction.

This function returns the exact number of digits that make up the fractional part of a money amount. It does so by returning returning moneypunct<char_type>::do_frac_digits().

The fractional part of a money amount is optional. But if it is present, there must be frac_digits() digits.

Returns
Number of digits in amount fraction.

Definition at line 1111 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_frac_digits().

template<typename _CharT , bool _Intl>
string std::moneypunct< _CharT, _Intl >::grouping ( ) const
inline

Return grouping specification.

This function returns a string representing groupings for the integer part of an amount. Groupings indicate where thousands separators should be inserted.

Each char in the return string is interpret as an integer rather than a character. These numbers represent the number of digits in a group. The first char in the string represents the number of digits in the least significant group. If a char is negative, it indicates an unlimited number of digits for the group. If more chars from the string are required to group a number, the last char is used repeatedly.

For example, if the grouping() returns \003\002 and is applied to the number 123456789, this corresponds to 12,34,56,789. Note that if the string was 32, this would put more than 50 digits into the least significant group if the character set is ASCII.

The string is returned by calling moneypunct<char_type>::do_grouping().

Returns
string representing grouping specification.

Definition at line 1048 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_grouping().

template<typename _CharT , bool _Intl>
pattern std::moneypunct< _CharT, _Intl >::neg_format ( ) const
inline

Return pattern for money values.

This function returns a pattern describing the formatting of a positive or negative valued money amount. It does so by returning returning moneypunct<char_type>::do_pos_format() or moneypunct<char_type>::do_neg_format().

The pattern has 4 fields describing the ordering of symbol, sign, value, and none or space. There must be one of each in the pattern. The none and space enums may not appear in the first field and space may not appear in the final field.

The parts of a money string must appear in the order indicated by the fields of the pattern. The symbol field indicates that the value of curr_symbol() may be present. The sign field indicates that the value of positive_sign() or negative_sign() must be present. The value field indicates that the absolute value of the money amount is present. none indicates 0 or more whitespace characters, except at the end, where it permits no whitespace. space indicates that 1 or more whitespace characters must be present.

For example, for the US locale and pos_format() pattern {symbol,sign,value,none}, curr_symbol() == '$' positive_sign() == '+', and value 10.01, and options set to force the symbol, the corresponding string is $+10.01.

Returns
Pattern for money values.

Definition at line 1151 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_neg_format().

template<typename _CharT , bool _Intl>
string_type std::moneypunct< _CharT, _Intl >::negative_sign ( ) const
inline

Return negative sign string.

This function returns a string_type to use as a sign for negative amounts. It does so by returning returning moneypunct<char_type>::do_negative_sign().

If the return value contains more than one character, the first character appears in the position indicated by neg_format() and the remainder appear at the end of the formatted string.

Returns
string_type representing a negative sign.

Definition at line 1095 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_negative_sign().

template<typename _CharT , bool _Intl>
pattern std::moneypunct< _CharT, _Intl >::pos_format ( ) const
inline

Return pattern for money values.

This function returns a pattern describing the formatting of a positive or negative valued money amount. It does so by returning returning moneypunct<char_type>::do_pos_format() or moneypunct<char_type>::do_neg_format().

The pattern has 4 fields describing the ordering of symbol, sign, value, and none or space. There must be one of each in the pattern. The none and space enums may not appear in the first field and space may not appear in the final field.

The parts of a money string must appear in the order indicated by the fields of the pattern. The symbol field indicates that the value of curr_symbol() may be present. The sign field indicates that the value of positive_sign() or negative_sign() must be present. The value field indicates that the absolute value of the money amount is present. none indicates 0 or more whitespace characters, except at the end, where it permits no whitespace. space indicates that 1 or more whitespace characters must be present.

For example, for the US locale and pos_format() pattern {symbol,sign,value,none}, curr_symbol() == '$' positive_sign() == '+', and value 10.01, and options set to force the symbol, the corresponding string is $+10.01.

Returns
Pattern for money values.

Definition at line 1147 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_pos_format().

template<typename _CharT , bool _Intl>
string_type std::moneypunct< _CharT, _Intl >::positive_sign ( ) const
inline

Return positive sign string.

This function returns a string_type to use as a sign for positive amounts. It does so by returning returning moneypunct<char_type>::do_positive_sign().

If the return value contains more than one character, the first character appears in the position indicated by pos_format() and the remainder appear at the end of the formatted string.

Returns
string_type representing a positive sign.

Definition at line 1078 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_positive_sign().

template<typename _CharT , bool _Intl>
char_type std::moneypunct< _CharT, _Intl >::thousands_sep ( ) const
inline

Return thousands separator character.

This function returns a char_type to use as a thousands separator. It does so by returning returning moneypunct<char_type>::do_thousands_sep().

Returns
char_type representing a thousands separator.

Definition at line 1018 of file locale_facets_nonio.h.

References std::moneypunct< _CharT, _Intl >::do_thousands_sep().

Member Data Documentation

template<typename _CharT , bool _Intl>
locale::id std::moneypunct< _CharT, _Intl >::id
static

Numpunct facet id.

Definition at line 953 of file locale_facets_nonio.h.

template<typename _CharT , bool _Intl>
const bool std::moneypunct< _CharT, _Intl >::intl
static

This value is provided by the standard, but no reason for its existence.

Definition at line 951 of file locale_facets_nonio.h.


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