Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O modelo de classe descreve um objeto que pode servir como uma faceta de localidade para controlar conversões de valores monetários em sequências do tipo CharType.
Sintaxe
template <class CharType,
class OutputIterator = ostreambuf_iterator<CharType>>
class money_put : public locale::facet;
Parâmetros
CharType
O tipo usado dentro de um programa para codificar caracteres em uma localidade.
OutputIterator
O tipo de iterador para o qual as funções de colocação monetária escrevem sua saída.
Observações
Como em qualquer faceta de localidade, o ID do objeto estático tem um valor inicial armazenado de zero. A primeira tentativa de acessar seu valor armazenado armazena um valor positivo exclusivo em id.
Construtores
| Construtor | Descrição |
|---|---|
| money_put | O construtor para objetos do tipo money_put. |
Typedefs (definições de tipos)
| Nome do tipo | Descrição |
|---|---|
| char_type | Um tipo que é usado para descrever um caractere usado por uma localidade. |
| iter_type | Um tipo que descreve um iterador de saída. |
| 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 |
|---|---|
| do_put | Uma função virtual chamada para converter um número ou uma cadeia de caracteres em uma sequência de caracteres que representa um valor monetário. |
| colocar | Converte um número ou uma cadeia de caracteres em uma sequência de caracteres que representa um valor monetário. |
Requerimentos
Cabeçalho:<localidade>
Espaço de nomes: std
money_put::char_type
Um tipo que é usado para descrever um caractere usado por uma localidade.
typedef CharType char_type;
Observações
O tipo é um sinônimo para o parâmetro de modelo CharType.
money_put::d o_put
Uma função virtual chamada para converter um número ou uma cadeia de caracteres em uma sequência de caracteres que representa um valor monetário.
virtual iter_type do_put(
iter_type next,
bool _Intl,
ios_base& _Iosbase,
CharType _Fill,
const string_type& val) const;
virtual iter_type do_put(
iter_type next,
bool _Intl,
ios_base& _Iosbase,
CharType _Fill,
long double val) const;
Parâmetros
seguinte
Um iterador endereçando o primeiro elemento da cadeia de caracteres inserida.
_Intl
Um valor booleano que indica o tipo de símbolo de moeda esperado na sequência: true se internacional, false se nacional.
_Iosbase
Um sinalizador de formato que, quando definido, indica que o símbolo da moeda é opcional; caso contrário, é obrigatório
_Fill
Um caractere que é usado para espaçamento.
Val
Um objeto string a ser convertido.
Valor de retorno
Um iterador de saída aborda a posição um além do último elemento produzido.
Observações
A primeira função de membro virtual protegido gera elementos sequenciais começando em seguida para produzir um campo de saída monetária a partir do objeto string_typeval. A sequência controlada por val deve começar com um ou mais dígitos decimais, opcionalmente precedidos por um sinal de menos (-), que representa a quantidade. A função retorna um iterador designando o primeiro elemento além do campo de saída monetária gerado.
A segunda função de membro virtual protegido se comporta da mesma forma que a primeira, exceto que efetivamente primeiro converte val em uma sequência de dígitos decimais, opcionalmente precedida por um sinal de menos e, em seguida, converte essa sequência como acima.
O formato de um campo de saída monetária é determinado pela faceta de localidade fac retornada pela chamada (efetiva) use_facet<moneypunct<CharType, intl>>( iosbase. getloc).
Mais especificamente:
FAC. pos_format determina a ordem em que os componentes do campo são gerados para um valor não negativo.
FAC. neg_format determina a ordem em que os componentes do campo são gerados para um valor negativo.
FAC. curr_symbol determina a sequência de elementos a serem gerados para um símbolo de moeda.
FAC. positive_sign determina a sequência de elementos a gerar para um sinal positivo.
FAC. negative_sign determina a sequência de elementos a gerar para um sinal negativo.
FAC. O agrupamento determina como os dígitos são agrupados à esquerda de qualquer ponto decimal.
FAC. thousands_sep determina o elemento que separa grupos de dígitos à esquerda de qualquer ponto decimal.
FAC. decimal_point determina o elemento que separa os dígitos inteiros de quaisquer dígitos de fração.
FAC. frac_digits determina o número de dígitos fracionários significativos à direita de qualquer ponto decimal.
Se a string do sinal ( fac. negative_sign ou fac. positive_sign) tiver mais de um elemento, somente o primeiro elemento será gerado onde o elemento igual a money_base::sign aparecerá no padrão de formato ( fac. neg_format ou fac. pos_format). Quaisquer elementos restantes são gerados no final do campo de produção monetária.
Se iosbase.
flags & showbase é diferente de zero, a string fac.
curr_symbol é gerado onde o elemento igual a money_base::symbol aparece no padrão de formato. Caso contrário, nenhum símbolo de moeda será gerado.
Se nenhuma restrição de agrupamento for imposta pelo fac.
Agrupamento (seu primeiro elemento tem o valor CHAR_MAX), em seguida, nenhuma instância de FAC.
thousands_sep são gerados na parte do valor do campo de produção monetária (onde o elemento igual a money_base::value aparece no padrão de formato). Se fac.
frac_digits é zero, então nenhuma instância de fac.
decimal_point é gerado após os dígitos decimais. Caso contrário, o campo de saída monetária resultante coloca o fac de ordem baixa.
frac_digits dígitos decimais à direita da vírgula decimal.
O preenchimento ocorre como para qualquer campo de saída numérico, exceto se iosbase. sinalizadores & iosbase. interno é diferente de zero, qualquer preenchimento interno é gerado onde o elemento igual a money_base::space aparece no padrão de formato, se aparecer. Caso contrário, o preenchimento interno ocorre antes da sequência gerada. O caractere de preenchimento é preenchimento.
A função chama iosbase. width(0) para redefinir a largura do campo para zero.
Exemplo
Veja o exemplo para put, onde a função de membro virtual é chamada por put.
money_put::iter_type
Um tipo que descreve um iterador de saída.
typedef OutputIterator iter_type;
Observações
O tipo é um sinônimo para o parâmetro de modelo OutputIterator.
money_put::money_put
O construtor para objetos do tipo money_put.
explicit money_put(size_t _Refs = 0);
Parâmetros
_Refs
Valor inteiro usado para especificar o tipo de gerenciamento de memória para o objeto.
Observações
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: estes valores não estão definidos.
Não são possíveis exemplos diretos, porque o destruidor está protegido.
O construtor inicializa seu objeto base com locale::facet(_Refs).
money_put::p ut
Converte um número ou uma cadeia de caracteres em uma sequência de caracteres que representa um valor monetário.
iter_type put(
iter_type next,
bool _Intl,
ios_base& _Iosbase,
CharType _Fill,
const string_type& val) const;
iter_type put(
iter_type next,
bool _Intl,
ios_base& _Iosbase,
CharType _Fill,
long double val) const;
Parâmetros
seguinte
Um iterador endereçando o primeiro elemento da cadeia de caracteres inserida.
_Intl
Um valor booleano que indica o tipo de símbolo de moeda esperado na sequência: true se internacional, false se nacional.
_Iosbase
Um sinalizador de formato que, quando definido, indica que o símbolo da moeda é opcional; caso contrário, é obrigatório
_Fill
Um caractere que é usado para espaçamento.
Val
Um objeto string a ser convertido.
Valor de retorno
Um iterador de saída aborda a posição um além do último elemento produzido.
Observações
Ambas as funções de membro retornam do_put(next, _Intl, _Iosbase, _Fillval, ).
Exemplo
// money_put_put.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
int main()
{
std::locale loc( "german_germany" );
std::basic_stringstream<char> psz;
psz.imbue(loc);
psz.flags(psz.flags() | std::ios_base::showbase); // force the printing of the currency symbol
std::use_facet<std::money_put<char> >(loc).put(std::basic_ostream<char>::_Iter(psz.rdbuf()), true, psz, ' ', 100012);
if (psz.fail())
std::cout << "money_put() FAILED" << std::endl;
else
std::cout << "money_put() = \"" << psz.rdbuf()->str() << "\"" << std::endl;
}
money_put() = "EUR1.000,12"
money_put::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;
Observações
O tipo descreve uma especialização de modelo de classe basic_string cujos objetos podem armazenar sequências de elementos da sequência de origem.
Ver também
<localidade>
faceta Classe
segurança de threads na biblioteca padrão C++