Compartir a través de


moneypunct (Clase)

La clase de plantilla describe un objeto que puede actuar como una faceta de configuración local para describir las secuencias de tipo CharType usadas para representar un campo monetario de entrada o de salida. Si el parámetro de plantilla Intl es true, se respetan las convenciones internacionales.

Sintaxis

template <class CharType, bool Intl>
class moneypunct;

Parámetros

CharType
Tipo usado dentro de un programa para codificar caracteres.

Intl
Una marca que especifica si las convenciones internacionales deben respetarse.

Comentarios

Como ocurre con cualquier faceta de configuración regional, el identificador de objeto estático tiene un valor almacenado inicial de cero. El primer intento de acceso a su valor almacenado almacena un valor positivo único en id.

El objeto estático constante intl almacena el valor del parámetro de plantilla Intl.

Constructores

Constructor Descripción
moneypunct Constructor de objetos de tipo moneypunct.

Typedefs

Nombre de tipo Descripción
char_type Tipo que se usa para describir un carácter empleado por una configuración regional.
string_type Tipo que describe una cadena que contiene caracteres de tipo CharType.

Funciones miembro

Función de miembro Descripción
curr_symbol Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de moneda.
decimal_point Devuelve una secuencia específica de la configuración regional de los elementos que se usan como separador decimal.
do_curr_symbol Una función miembro virtual protegida que devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de moneda.
do_decimal_point Una función miembro virtual protegida a la que se llama para devolver una secuencia específica de la configuración regional de los elementos que se usan como símbolo de separador decimal.
do_frac_digits La función miembro virtual protegida devuelve un recuento específico de la configuración regional de la cantidad de dígitos que se muestran a la derecha de cualquier separador decimal.
do_grouping La función miembro virtual protegida devuelve una regla específica de la configuración regional para determinar cómo se agrupan los dígitos a la izquierda de cualquier separador decimal.
do_neg_format Una función miembro virtual protegida a la que se llama para devolver una regla específica de la configuración regional para dar formato a resultados con cantidades negativas.
do_negative_sign Una función miembro virtual protegida a la que se llama para devolver una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo negativo.
do_pos_format Una función miembro virtual protegida a la que se llama para devolver una regla específica de la configuración regional para dar formato a resultados con cantidades positivas.
do_positive_sign Una función miembro virtual protegida a la que se llama para devolver una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo positivo.
do_thousands_sep Una función miembro virtual protegida a la que se llama para devolver una secuencia específica de la configuración regional de los elementos que se usan como símbolo de separador de miles.
frac_digits Devuelve un recuento específico de la configuración regional de la cantidad de dígitos que se muestran a la derecha del separador decimal.
grouping Devuelve una regla específica de la configuración regional para determinar cómo se agrupan los dígitos a la izquierda del separador decimal.
neg_format Devuelve una regla específica de la configuración regional para dar formato a resultados con cantidades negativas.
negative_sign Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo negativo.
pos_format Devuelve una regla específica de la configuración regional para dar formato a resultados con cantidades positivas.
positive_sign Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo positivo.
thousands_sep Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de separador de miles.

Requisitos

Encabezado:<locale>

Espacio de nombres: std

moneypunct::char_type

Tipo que se usa para describir un carácter empleado por una configuración regional.

typedef CharType char_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla CharType.

moneypunct::curr_symbol

Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de moneda.

string_type curr_symbol() const;

Valor devuelto

Una cadena que contiene el símbolo de moneda.

Comentarios

La función miembro devuelve do_curr_symbol.

Ejemplo

// moneypunct_curr_symbol.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const moneypunct < char, true > &mpunct = use_facet < moneypunct < char, true > >(loc);
   cout << loc.name( ) << " international currency symbol "<<  mpunct.curr_symbol( ) << endl;

   const moneypunct < char, false> &mpunct2 = use_facet < moneypunct < char, false> >(loc);
   cout << loc.name( ) << " domestic currency symbol "<<  mpunct2.curr_symbol( ) << endl;
};

moneypunct::d ecimal_point

Devuelve una secuencia específica de la configuración regional de los elementos que se usan como separador decimal.

CharType decimal_point() const;

Valor devuelto

Una secuencia específica de la configuración regional de los elementos que se usan como un símbolo de separador decimal.

Comentarios

La función miembro devuelve do_decimal_point.

Ejemplo

// moneypunct_decimal_pt.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc("german_germany");

   const moneypunct < char, true > &mpunct = use_facet
      < moneypunct < char, true > >(loc);
   cout << loc.name( ) << " international decimal point "
        << mpunct.decimal_point( ) << endl;

   const moneypunct < char, false> &mpunct2 = use_facet
      < moneypunct < char, false> >(loc);
   cout << loc.name( ) << " domestic decimal point "
        << mpunct2.decimal_point( ) << endl;
}
German_Germany.1252 international decimal point ,
German_Germany.1252 domestic decimal point ,

moneypunct::d o_curr_symbol

Una función miembro virtual protegida que devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de moneda.

virtual string_type do_curr_symbol() const;

Valor devuelto

Una secuencia específica de la configuración regional de los elementos que se usan como un símbolo de separador decimal.

Ejemplo

Vea el ejemplo de curr_symbol, donde curr_symbol llama a la función miembro virtual.

moneypunct::d o_decimal_point

Una función miembro virtual protegida que devuelve una secuencia específica de la configuración regional de los elementos que se usan como un símbolo de separador decimal.

virtual CharType do_decimal_point() const;

Valor devuelto

Una secuencia específica de la configuración regional de los elementos que se usan como un símbolo de separador decimal.

Ejemplo

Vea el ejemplo de decimal_point, donde decimal_point llama a la función miembro virtual.

moneypunct::d o_frac_digits

Una función miembro virtual protegida que devuelve un recuento específico de la configuración regional de la cantidad de dígitos que se muestran a la derecha de cualquier separador decimal.

virtual int do_frac_digits() const;

Valor devuelto

Un recuento específico de la configuración regional de la cantidad de dígitos que se muestran a la derecha del separador decimal.

Ejemplo

Vea el ejemplo de frac_digits, donde frac_digits llama a la función miembro virtual.

moneypunct::d o_grouping

Una función miembro virtual protegida que devuelve una regla específica de la configuración regional para determinar cómo se agrupan los dígitos a la izquierda de cualquier separador decimal.

virtual string do_grouping() const;

Valor devuelto

Una regla específica de la configuración regional para determinar cómo se agrupan los dígitos a la izquierda de cualquier separador decimal.

Ejemplo

Consulte el ejemplo de grouping, donde grouping llama a la función miembro virtual.

moneypunct::d o_neg_format

Una función miembro virtual protegida a la que se llama para devolver una regla específica de la configuración regional para dar formato a resultados con cantidades negativas.

virtual pattern do_neg_format() const;

Valor devuelto

La función miembro virtual protegida devuelve una regla específica de la configuración regional para determinar cómo generar un campo de salida monetario para una cantidad negativa. Cada uno de los cuatro elementos de pattern::field puede tener los valores:

  • none para buscar cero o más espacios o no generar nada.

  • sign para buscar o generar un signo positivo o negativo.

  • space para buscar cero o más espacios o generar un espacio.

  • symbol para buscar o generar un símbolo de moneda.

  • value para buscar o generar un valor monetario.

Se generan los componentes de un campo de salida monetario y los componentes de un campo de entrada monetario se hacen coincidir en el orden en el que estos elementos aparecen en pattern::field. Cada uno de los valores sign, symbol, value, y none o space deben aparecer exactamente una vez. El valor none no debe aparecer en primer lugar. El valor space no debe aparecer en primer lugar. Si Intl es true, el orden es symbol, sign, none y, a continuación value.

La versión de plantilla de moneypunct< CharType, Intl > devuelve {money_base::symbol, money_base::sign, money_base::value, money_base::none}.

Ejemplo

Vea el ejemplo de neg_format, donde neg_format llama a la función miembro virtual.

moneypunct::d o_negative_sign

Una función miembro virtual protegida a la que se llama para devolver una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo negativo.

virtual string_type do_negative_sign() const;

Valor devuelto

Una secuencia específica de la configuración regional de los elementos que se usan como signo negativo.

Ejemplo

Vea el ejemplo de negative_sign, donde negative_sign llama a la función miembro virtual.

moneypunct::d o_pos_format

Una función miembro virtual protegida a la que se llama para devolver una regla específica de la configuración regional para dar formato a resultados con cantidades positivas.

virtual pattern do_pos_format() const;

Valor devuelto

La función miembro virtual protegida devuelve una regla específica de la configuración regional para determinar cómo generar un campo de salida monetario para una cantidad positiva. (También determina cómo hacer coincidir los componentes de un campo de entrada monetario). La codificación es la misma que para do_neg_format.

La versión de plantilla de moneypunct< CharType, Inputlterator > devuelve { money_base::symbol, money_base::sign, money_base::value, money_base::none }.

Ejemplo

Vea el ejemplo de pos_format, donde pos_format llama a la función miembro virtual.

moneypunct::d o_positive_sign

Una función miembro virtual protegida que devuelve una secuencia específica de la configuración regional de los elementos que se usan como signo positivo.

virtual string_type do_positive_sign() const;

Valor devuelto

Una secuencia específica de la configuración regional de los elementos que se usan como signo positivo.

Ejemplo

Vea el ejemplo de positive_sign, donde positive_sign llama a la función miembro virtual.

moneypunct::d o_thousands_sep

Una función miembro virtual protegida que devuelve un elemento específico de la configuración regional que se va a usar como un separador de grupo a la izquierda de cualquier separador decimal.

virtual CharType do_thousands_sep() const;

Valor devuelto

Un elemento específico de la configuración regional que se va a usar como un separador de grupo a la izquierda de cualquier separador decimal.

Ejemplo

Vea el ejemplo de thousands_sep, donde thousands_sep llama a la función miembro virtual.

moneypunct::frac_digits

Devuelve un recuento específico de la configuración regional de la cantidad de dígitos que se muestran a la derecha del separador decimal.

int frac_digits() const;

Valor devuelto

Un recuento específico de la configuración regional de la cantidad de dígitos que se muestran a la derecha del separador decimal.

Comentarios

La función miembro devuelve do_frac_digits.

Ejemplo

// moneypunct_frac_digits.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const moneypunct <char, true> &mpunct =
       use_facet <moneypunct <char, true> >(loc);
   for (unsigned int i = 0; i <mpunct.grouping( ).length( ); i++ )
   {
      cout << loc.name( ) << " international grouping:\n the "
           << i <<"th group to the left of the radix character "
           << "is of size " << (int)(mpunct.grouping ( )[i])
           << endl;
   }
   cout << loc.name( ) << " international frac_digits\n to the right"
        << " of the radix character: "
        << mpunct.frac_digits ( ) << endl << endl;

   const moneypunct <char, false> &mpunct2 =
       use_facet <moneypunct <char, false> >(loc);
   for (unsigned int i = 0; i <mpunct2.grouping( ).length( ); i++ )
   {
      cout << loc.name( ) << " domestic grouping:\n the "
           << i <<"th group to the left of the radix character "
           << "is of size " << (int)(mpunct2.grouping ( )[i])
           << endl;
   }
   cout << loc.name( ) << " domestic frac_digits\n to the right"
        << " of the radix character: "
        << mpunct2.frac_digits ( ) << endl << endl;
}
German_Germany.1252 international grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 international frac_digits
to the right of the radix character: 2

German_Germany.1252 domestic grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 domestic frac_digits
to the right of the radix character: 2

moneypunct::grouping

Devuelve una regla específica de la configuración regional para determinar cómo se agrupan los dígitos a la izquierda del separador decimal.

string grouping() const;

Valor devuelto

Una regla específica de la configuración regional para determinar cómo se agrupan los dígitos a la izquierda de cualquier separador decimal.

Comentarios

La función miembro devuelve do_grouping.

Ejemplo

// moneypunct_grouping.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const moneypunct <char, true> &mpunct =
       use_facet <moneypunct <char, true> >( loc );
   for (unsigned int i = 0; i <mpunct.grouping( ).length( ); i++ )
   {
      cout << loc.name( ) << " international grouping:\n the "
           << i <<"th group to the left of the radix character "
           << "is of size " << (int)(mpunct.grouping ( )[i])
           << endl;
   }
   cout << loc.name( ) << " international frac_digits\n to the right"
        << " of the radix character: "
        << mpunct.frac_digits ( ) << endl << endl;

   const moneypunct <char, false> &mpunct2 =
       use_facet <moneypunct <char, false> >( loc );
   for (unsigned int i = 0; i <mpunct2.grouping( ).length( ); i++ )
   {
      cout << loc.name( ) << " domestic grouping:\n the "
           << i <<"th group to the left of the radix character "
           << "is of size " << (int)(mpunct2.grouping ( )[i])
           << endl;
   }
   cout << loc.name( ) << " domestic frac_digits\n to the right"
        << " of the radix character: "
        << mpunct2.frac_digits ( ) << endl << endl;
}
German_Germany.1252 international grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 international frac_digits
to the right of the radix character: 2

German_Germany.1252 domestic grouping:
the 0th group to the left of the radix character is of size 3
German_Germany.1252 domestic frac_digits
to the right of the radix character: 2

moneypunct::moneypunct

Constructor de objetos de tipo moneypunct.

explicit moneypunct(size_t _Refs = 0);

Parámetros

_Refs
Valor entero que se usa para especificar el tipo de administración de memoria del objeto.

Comentarios

Los valores posibles del parámetro _Refs y su importancia son:

  • 0: la vigencia del objeto se administra mediante las configuraciones regionales que lo contienen.

  • 1: la vigencia del objeto se debe administrar de manera manual.

  • > 1: estos valores no están definidos.

No es posible mostrar ejemplos directos, porque el destructor está protegido.

El constructor inicializa su objeto base con locale::facet(_ Refs).

moneypunct::neg_format

Devuelve una regla específica de la configuración regional para dar formato a resultados con cantidades negativas.

pattern neg_format() const;

Valor devuelto

Una regla específica de la configuración regional para dar formato a resultados con cantidades negativas.

Comentarios

La función miembro devuelve do_neg_format.

Ejemplo

// moneypunct_neg_format.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>

using namespace std;

int main( ) {
   locale loc( "german_germany" );

   const moneypunct <char, true> &mpunct =
      use_facet <moneypunct <char, true > >(loc);
   cout << loc.name( ) << " international negative number format: "
        << mpunct.neg_format( ).field[0]
        << mpunct.neg_format( ).field[1]
        << mpunct.neg_format( ).field[2]
        << mpunct.neg_format( ).field[3] << endl;

   const moneypunct <char, false> &mpunct2 =
      use_facet <moneypunct <char, false> >(loc);
   cout << loc.name( ) << " domestic negative number format: "
        << mpunct2.neg_format( ).field[0]
        << mpunct2.neg_format( ).field[1]
        << mpunct2.neg_format( ).field[2]
        << mpunct2.neg_format( ).field[3] << endl;
}

moneypunct::negative_sign

Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo negativo.

string_type negative_sign() const;

Valor devuelto

Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo negativo.

Comentarios

La función miembro devuelve do_negative_sign.

Ejemplo

// moneypunct_neg_sign.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>

using namespace std;

int main( )
{
   locale loc( "german_germany" );

   const moneypunct <char, true> &mpunct =
      use_facet <moneypunct <char, true> >(loc);
   cout << loc.name( ) << " international negative sign: "
        << mpunct.negative_sign( ) << endl;

   const moneypunct <char, false> &mpunct2 =
      use_facet <moneypunct <char, false> >(loc);
   cout << loc.name( ) << " domestic negative sign: "
        << mpunct2.negative_sign( ) << endl;

   locale loc2( "French" );

   const moneypunct <char, true> &mpunct3 =
      use_facet <moneypunct <char, true> >(loc2);
   cout << loc2.name( ) << " international negative sign: "
        << mpunct3.negative_sign( ) << endl;

   const moneypunct <char, false> &mpunct4 =
      use_facet <moneypunct <char, false> >(loc2);
   cout << loc2.name( ) << " domestic negative sign: "
        << mpunct4.negative_sign( ) << endl;
};
German_Germany.1252 international negative sign: -
German_Germany.1252 domestic negative sign: -
French_France.1252 international negative sign: -
French_France.1252 domestic negative sign: -

moneypunct::p os_format

Devuelve una regla específica de la configuración regional para dar formato a resultados con cantidades positivas.

pattern pos_format() const;

Valor devuelto

Una regla específica de la configuración regional para dar formato a resultados con cantidades positivas.

Comentarios

La función miembro devuelve do_pos_format.

Ejemplo

// moneypunct_pos_format.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>

using namespace std;

int main() {
   locale loc( "german_germany" );

   const moneypunct <char, true> &mpunct =
      use_facet <moneypunct <char, true> >(loc);
   cout << loc.name( ) << " international positive number format: "
        << mpunct.pos_format( ).field[0]
        << mpunct.pos_format( ).field[1]
        << mpunct.pos_format( ).field[2]
        << mpunct.pos_format( ).field[3] << endl;

   const moneypunct <char, false> &mpunct2 =
      use_facet <moneypunct <char, false> >(loc);
   cout << loc.name( ) << " domestic positive number format: "
        << mpunct2.pos_format( ).field[0]
        << mpunct2.pos_format( ).field[1]
        << mpunct2.pos_format( ).field[2]
        << mpunct2.pos_format( ).field[3] << endl;
}

moneypunct::p ositive_sign

Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo positivo.

string_type positive_sign() const;

Valor devuelto

Una secuencia específica de la configuración regional de los elementos que se usan como símbolo de signo positivo.

Comentarios

La función miembro devuelve do_positive_sign.

Ejemplo

// moneypunct_pos_sign.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>

using namespace std;

int main( )
{
   locale loc( "german_germany" );

   const moneypunct <char, true> &mpunct =
      use_facet <moneypunct <char, true > >(loc);
   cout << loc.name( ) << " international positive sign:"
        << mpunct.positive_sign( ) << endl;

   const moneypunct <char, false> &mpunct2 =
      use_facet <moneypunct <char, false> >(loc);
   cout << loc.name( ) << " domestic positive sign:"
        << mpunct2.positive_sign( ) << endl;

   locale loc2( "French" );

   const moneypunct <char, true> &mpunct3 =
      use_facet <moneypunct <char, true> >(loc2);
   cout << loc2.name( ) << " international positive sign:"
        << mpunct3.positive_sign( ) << endl;

   const moneypunct <char, false> &mpunct4 =
      use_facet <moneypunct <char, false> >(loc2);
   cout << loc2.name( ) << " domestic positive sign:"
        << mpunct4.positive_sign( ) << endl;
};
German_Germany.1252 international positive sign:
German_Germany.1252 domestic positive sign:
French_France.1252 international positive sign:
French_France.1252 domestic positive sign:

moneypunct::string_type

Un tipo que describe una cadena que contiene caracteres de tipo CharType.

typedef basic_string<CharType, Traits, Allocator> string_type;

Comentarios

El tipo describe una especialización de la plantilla de clase basic_string cuyos objetos pueden almacenar copias de las secuencias de puntuación.

moneypunct::thousands_sep

Devuelve una secuencia específica de la configuración regional de los elementos que se usan como símbolo de separador de miles.

CharType thousands_sep() const;

Valor devuelto

Una secuencia específica de la configuración regional de los elementos que se usan como separador de miles.

Comentarios

La función miembro devuelve do_thousands_sep.

Ejemplo

// moneypunct_thou_sep.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
   locale loc( "german_germany" );

   const moneypunct <char, true> &mpunct =
       use_facet <moneypunct <char, true > >(loc);
   cout << loc.name( ) << " international thousands separator: "
        << mpunct.thousands_sep( ) << endl;

   const moneypunct <char, false> &mpunct2 =
      use_facet <moneypunct <char, false> >(loc);
   cout << loc.name( ) << " domestic thousands separator: "
        << mpunct2.thousands_sep( ) << endl << endl;

   locale loc2( "english_canada" );

   const moneypunct <char, true> &mpunct3 =
       use_facet <moneypunct <char, true> >(loc2);
   cout << loc2.name( ) << " international thousands separator: "
        << mpunct3.thousands_sep( ) << endl;

   const moneypunct <char, false> &mpunct4 =
      use_facet <moneypunct <char, false> >(loc2);
   cout << loc2.name( ) << " domestic thousands separator: "
        << mpunct4.thousands_sep( ) << endl;
}
German_Germany.1252 international thousands separator: .
German_Germany.1252 domestic thousands separator: .

English_Canada.1252 international thousands separator: ,
English_Canada.1252 domestic thousands separator: ,

Vea también

<locale>
Seguridad para subprocesos en la biblioteca estándar de C++