Partilhar via


Classe moneypunct

O modelo de classe descreve um objeto que pode funcionar como uma faceta de localidade para descrever as sequências do tipo CharType usadas para representar um campo de entrada monetário ou um campo de saída monetário. Se o parâmetro de modelo Intl for true, as convenções internacionais serão observadas.

Sintaxe

template <class CharType, bool Intl>
class moneypunct;

Parâmetros

CharType
O tipo usado em um programa para codificar caracteres.

Intl
Um sinalizador que especifica se as convenções internacionais devem ser observadas.

Comentários

Como qualquer faceta de localidade, a ID de objeto estático tem um valor armazenado inicial de zero. A primeira tentativa de acessar seu valor armazenado armazena um valor positivo exclusivo na id.

O objeto estático const intl armazena o valor do parâmetro de modelo Intl.

Construtores

Construtor Descrição
moneypunct Construtor de objetos do tipo moneypunct.

Typedefs

Nome do tipo Descrição
char_type Um tipo que é usado para descrever um caractere usado por uma localidade.
string_type Um tipo que descreve uma cadeia de caracteres que contém caracteres do tipo CharType.

Funções de membro

Função de membro Descrição
curr_symbol Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de moeda.
decimal_point Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de vírgula decimal.
do_curr_symbol Uma função membro virtual protegida que retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de moeda.
do_decimal_point Uma função membro virtual protegida que é chamada para retornar uma sequência de elementos específica de localidade a ser usada como um símbolo de vírgula decimal.
do_frac_digits A função membro virtual protegida retorna uma contagem do número de dígitos específica de localidade a ser exibida à direita de qualquer vírgula decimal.
do_grouping A função membro virtual protegida retorna uma regra específica de localidade para determinar como os dígitos são agrupados à esquerda de qualquer vírgula decimal.
do_neg_format Uma função membro virtual protegida que é chamada para retornar uma regra específica de localidade para formatação de saídas com valores negativos.
do_negative_sign Uma função membro virtual protegida que é chamada para retornar uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal negativo.
do_pos_format Uma função membro virtual protegida que é chamada para retornar uma regra específica de localidade para formatação de saídas com valores positivos.
do_positive_sign Uma função membro virtual protegida que é chamada para retornar uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal positivo.
do_thousands_sep Uma função membro virtual protegida que é chamada para retornar uma sequência de elementos específica de localidade a ser usada como um símbolo de separador de milhares.
frac_digits Retorna uma contagem do número de dígitos específica de localidade a ser exibida à direita de qualquer vírgula decimal.
grouping Retorna uma regra específica de localidade para determinar como os dígitos são agrupados à esquerda de qualquer vírgula decimal.
neg_format Retorna uma regra específica de localidade para formatação de saídas com valores negativos.
negative_sign Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal negativo.
pos_format Retorna uma regra específica de localidade para formatação de saídas com valores positivos.
positive_sign Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal positivo.
thousands_sep Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de separador de milhares.

Requisitos

Cabeçalho:<locale>

Namespace: std

moneypunct::char_type

Um tipo que é usado para descrever um caractere usado por uma localidade.

typedef CharType char_type;

Comentários

O tipo é um sinônimo do parâmetro de modelo CharType.

moneypunct::curr_symbol

Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de moeda.

string_type curr_symbol() const;

Valor de retorno

Uma cadeia de caracteres que contém o símbolo de moeda.

Comentários

A função membro retorna do_curr_symbol.

Exemplo

// 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 ponto_ecimal

Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de vírgula decimal.

CharType decimal_point() const;

Valor de retorno

Uma sequência de elementos específica de localidade a ser usada como um símbolo de vírgula decimal.

Comentários

A função membro retorna do_decimal_point.

Exemplo

// 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

Uma função membro virtual protegida que retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de moeda.

virtual string_type do_curr_symbol() const;

Valor de retorno

Uma sequência de elementos específica de localidade a ser usada como um símbolo de vírgula decimal.

Exemplo

Veja o exemplo de curr_symbol, em que a função membro virtual é chamada por curr_symbol.

moneypunct::d o_decimal_point

Uma função membro virtual protegida que retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de vírgula decimal.

virtual CharType do_decimal_point() const;

Valor de retorno

Uma sequência de elementos específica de localidade a ser usada como um símbolo de vírgula decimal.

Exemplo

Veja o exemplo de decimal_point, em que a função membro virtual é chamada por decimal_point.

moneypunct::d o_frac_digits

Uma função membro virtual protegida retorna uma contagem do número de dígitos específica de localidade a ser exibida à direita de qualquer vírgula decimal.

virtual int do_frac_digits() const;

Valor de retorno

Uma contagem do número de dígitos específica de localidade a ser exibida à direita de qualquer vírgula decimal.

Exemplo

Veja o exemplo de frac_digits, em que a função membro virtual é chamada por frac_digits.

moneypunct::d o_grouping

Uma função membro virtual protegida que retorna uma regra específica de localidade para determinar como os dígitos são agrupados à esquerda de qualquer vírgula decimal.

virtual string do_grouping() const;

Valor de retorno

Uma regra específica de localidade para determinar como os dígitos são agrupados à esquerda de qualquer vírgula decimal.

Exemplo

Veja o exemplo de grouping, em que a função membro virtual é chamada por grouping.

moneypunct::d o_neg_format

Uma função membro virtual protegida que é chamada para retornar uma regra específica de localidade para formatação de saídas com valores negativos.

virtual pattern do_neg_format() const;

Valor de retorno

A função membro virtual protegida retorna uma regra específica de localidade para determinar como gerar o campo de saída monetário para um valor negativo. Cada um dos quatro elementos de pattern::field pode ter os valores:

  • none para corresponder a zero ou mais espaços, ou não gerar nada.

  • sign para corresponder ou gerar um sinal positivo ou negativo.

  • space para corresponder a zero ou mais espaços, ou gerar um espaço.

  • symbol para corresponder ou gerar um símbolo de moeda.

  • value para corresponder ou gerar um valor monetário.

Os componentes de um campo de saída monetária são gerados e os componentes de um campo de entrada monetária são correspondidos na ordem em que esses elementos aparecem em pattern::field. Cada um dos valores sign, symbol, value e, none ou space, deve aparecer exatamente uma vez. O valor none não deve aparecer primeiro. O valor space não deve aparecer primeiro ou por último. Se Intl for true, a ordem será symbol, sign, none, em seguida value.

A versão do modelo de moneypunct< CharType, Intl > sempre retorna {money_base::symbol, money_base::sign, money_base::value, money_base::none}.

Exemplo

Veja o exemplo de net_format, em que a função membro virtual é chamada por neg_format.

moneypunct::d o_sinal_negativo

Uma função membro virtual protegida que é chamada para retornar uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal negativo.

virtual string_type do_negative_sign() const;

Valor de retorno

Uma sequência de elementos específica de localidade a ser usada como um sinal negativo.

Exemplo

Veja o exemplo de negative_sign, em que a função membro virtual é chamada por negative_sign.

moneypunct::d o_pos_format

Uma função membro virtual protegida que é chamada para retornar uma regra específica de localidade para formatação de saídas com valores positivos.

virtual pattern do_pos_format() const;

Valor de retorno

A função membro virtual protegida retorna uma regra específica de localidade para determinar como gerar o campo de saída monetário para um valor positivo. (Ela também determina como fazer a correspondência dos componentes de um campo de entrada monetária). A codificação é a mesma para do_neg_format.

A versão do modelo de moneypunct< CharType, Inputlterator > sempre retorna { money_base::symbol, money_base::sign, money_base::value, money_base::none }.

Exemplo

Veja o exemplo de pos_format, em que a função membro virtual é chamada por pos_format.

moneypunct::d o_sinal_positivo

Uma função membro virtual protegida que retorna uma sequência de elementos específica de localidade a ser usada como um sinal positivo.

virtual string_type do_positive_sign() const;

Valor de retorno

Uma sequência de elementos específica de localidade a ser usada como um sinal positivo.

Exemplo

Veja o exemplo de positive_sign, em que a função membro virtual é chamada por positive_sign.

moneypunct::d o_thousands_sep

Uma função membro virtual protegida que retorna um elemento específico de localidade para ser usado como separador de grupo à esquerda da vírgula decimal.

virtual CharType do_thousands_sep() const;

Valor de retorno

Um elemento específico de localidade a ser usado como um separador de grupo à esquerda de qualquer vírgula decimal.

Exemplo

Veja o exemplo de thousands_sep, em que a função membro virtual é chamada por thousands_sep.

moneypunct::frac_digits

Retorna uma contagem do número de dígitos específica de localidade a ser exibida à direita de qualquer vírgula decimal.

int frac_digits() const;

Valor de retorno

Uma contagem do número de dígitos específica de localidade a ser exibida à direita de qualquer vírgula decimal.

Comentários

A função membro retorna do_frac_digits.

Exemplo

// 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::agrupamento

Retorna uma regra específica de localidade para determinar como os dígitos são agrupados à esquerda de qualquer vírgula decimal.

string grouping() const;

Valor de retorno

Uma regra específica de localidade para determinar como os dígitos são agrupados à esquerda de qualquer vírgula decimal.

Comentários

A função membro retorna do_grouping.

Exemplo

// 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

Construtor de objetos do tipo moneypunct.

explicit moneypunct(size_t _Refs = 0);

Parâmetros

_Refs
Valor inteiro usado para especificar o tipo de gerenciamento de memória do objeto.

Comentários

Os valores possíveis para o parâmetro _Refs e sua significância são:

  • 0: o tempo de vida do objeto é gerenciado pelas localidades que o contêm.

  • 1: o tempo de vida do objeto deve ser gerenciado manualmente.

  • > 1: esses valores não estão definidos.

Nenhum exemplo direto é possível, pois o destruidor está protegido.

O construtor inicializa seu objeto base com locale::facet(_ Refs).

moneypunct::neg_format

Retorna uma regra específica de localidade para formatação de saídas com valores negativos.

pattern neg_format() const;

Valor de retorno

Uma regra específica de localidade para formatação de saídas com valores negativos.

Comentários

A função membro retorna do_neg_format.

Exemplo

// 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

Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal negativo.

string_type negative_sign() const;

Valor de retorno

Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal negativo.

Comentários

A função membro retorna do_negative_sign.

Exemplo

// 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

Retorna uma regra específica de localidade para formatação de saídas com valores positivos.

pattern pos_format() const;

Valor de retorno

Uma regra específica de localidade para formatação de saídas com valores positivos.

Comentários

A função membro retorna do_pos_format.

Exemplo

// 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

Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal positivo.

string_type positive_sign() const;

Valor de retorno

Uma sequência de elementos específica de localidade a ser usada como um símbolo de sinal positivo.

Comentários

-A função membro retorna do_positive_sign.

Exemplo

// 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

Um tipo que descreve uma cadeia de caracteres que contém caracteres do tipo CharType.

typedef basic_string<CharType, Traits, Allocator> string_type;

Comentários

O tipo descreve uma especialização do modelo de classe basic_string cujos objetos podem armazenar cópias das sequências de pontuação.

moneypunct::thousands_sep

Retorna uma sequência de elementos específica de localidade a ser usada como um símbolo de separador de milhares.

CharType thousands_sep() const;

Valor de retorno

Uma sequência de elementos específica de localidade a ser usada como separador de milhares

Comentários

A função membro retorna do_thousands_sep.

Exemplo

// 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: ,

Confira também

<locale>
Acesso Thread-Safe na Biblioteca Padrão C++