money_put::do_put
Uma função virtual chamada para converter o número ou uma cadeia de caracteres para 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
_Next
Um iterador que trata o primeiro elemento da cadeia de caracteres inserida._Intl
Um valor booliano que indica o tipo de símbolo de moeda esperado na sequência: se true internacional, false se doméstico._Iosbase
Um sinalizador de formato que quando o conjunto indicar que o símbolo de moeda é opcional; caso contrário, será necessário_Fill
Um caractere que é usado espaçando._Val
Um objeto de cadeia de caracteres a ser convertido.
Valor de retorno
Um iterador de saída os endereços que a posição uma elemento além do mais recente gerada.
Comentários
A primeira função de membro protegida virtual gerencia os elementos sequenciais que começam em _Next a gerar um campo monetário de saída do objeto _Valde string_type . A sequência controlada por _Val deve iniciar com um ou mais dígitos decimais, opcionalmente precedidos por um sinal de menos (–), que representa a quantidade. A função retorna um iterador que designa o primeiro elemento além de campo monetário gerado de saída.
A segunda função de membro protegida virtual se comportará da mesma forma que os primeiros, exceto que o efetivamente primeiros converte _Val a uma sequência de dígitos decimais, opcionalmente precedida por um sinal de menos, então por converte que colocam em sequência como acima.
O formato de um campo monetário de saída é determinado pelo fac de faceta de localidade retornado pela chamada efetivo () use_facet <moneypunct<CharType, internacionais> >(iosbase.getloc).
Especificamente:
fac.pos_format determina a ordem em que os componentes do campo são gerados para um valor não negativo.
fac.negative_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 para gerar um símbolo de moeda.
fac.positive_sign determina a sequência de elementos para gerar um sinal positivo.
fac.negative_sign determina a sequência de elementos para gerar um sinal negativo.
fac.clustering determina como são agrupados os dígitos à 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 do inteiro dos dígitos de fração.
fac.frac_digits determina o número de dígitos significativos de fração à direita de qualquer ponto decimal.
Se a cadeia de caracteres de sinal (fac.negative_sign ou fac.positive_sign) tem mais de um elemento, apenas o primeiro elemento é gerado em que o elemento igual a money_base::sign aparece no padrão de formato (fac.neg_format ou fac.pos_format). Todos os elementos restantes são gerados no final do campo monetário de saída.
Se iosbase.sinalizadores &showbase for diferente de zero, a cadeia de caracteres fac.curr_symbol é gerado em que o elemento igual a money_base::symbol aparece no padrão de formato. Caso contrário, nenhum símbolo de moeda é gerado.
Se nenhuma restrição de agrupamento é imposta por fac.grouping (seu primeiro elemento tem o valor CHAR_MAX), nenhuma em instâncias de fac.thousands_sep é gerado na parte do valor do campo monetário de saída (onde o elemento igual a money_base::value aparece no padrão de formato). Se fac.frac_digits for zero, nenhuma instância de fac.decimal_point é gerado depois dos dígitos decimais. Caso contrário, o campo monetário resultante de saída coloca o facde ordem. dígitos decimais defrac_digits à direita do ponto decimal.
O preenchimento ocorre como para a qualquer campo numérico de saída, exceto que se iosbase.flags &iosbase.interno for diferente de zero, qualquer preenchimento interno é gerado em que o elemento igual a money_base::space aparece no padrão de formato, se é exibida. Caso contrário, o preenchimento interno ocorre antes da sequência gerado. O caractere de preenchimento é fill.
As chamadas de função iosbase.width(0) para redefinir a largura de campo como zero.
Exemplo
Consulte o exemplo de colocado, onde a função de membro virtual é chamada por put.
Requisitos
localidade <deCabeçalho: >
Namespace: std