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