Classe moneypunct
Il modello di classe descrive un oggetto che può fungere da facet delle impostazioni locali per descrivere le sequenze di tipo CharType utilizzate per rappresentare un campo di input monetario o un campo di output monetario. Se il parametro template Intl è true, vengono osservate convenzioni internazionali.
Sintassi
template <class CharType, bool Intl>
class moneypunct;
Parametri
CharType
Tipo utilizzato all'interno di un programma per codificare i caratteri.
Intl
Flag che specifica se devono essere rispettate le convenzioni internazionali.
Osservazioni:
Come in qualsiasi facet delle impostazioni locali, l'ID dell'oggetto statico ha un valore archiviato iniziale uguale a zero. Il primo tentativo di accedere a tale valore archiviato consente di archiviare un valore positivo univoco in id.
L'oggetto statico const intl archivia il valore del parametro di modello Intl.
Costruttori
Costruttore | Descrizione |
---|---|
moneypunct | Costruttore di oggetti di tipo moneypunct . |
Typedef
Nome tipo | Descrizione |
---|---|
char_type | Tipo utilizzato per descrivere un carattere utilizzato dalle impostazioni locali. |
string_type | Tipo che descrive una stringa contenente caratteri di tipo CharType . |
Funzioni membro
Funzione membro | Descrizione |
---|---|
curr_symbol | Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di valuta. |
decimal_point | Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di separatore decimale. |
do_curr_symbol | Funzione membro virtuale protetta che restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di valuta. |
do_decimal_point | Funzione membro virtuale protetta chiamata per restituire una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di separatore decimale. |
do_frac_digits | La funzione membro virtuale protetta restituisce un conteggio del numero di cifre specifico delle impostazioni locali da visualizzare a destra di un separatore decimale. |
do_grouping | La funzione membro virtuale protetta restituisce una regola specifica delle impostazioni locali per determinare la modalità di raggruppamento delle cifre a sinistra di un separatore decimale. |
do_neg_format | Funzione membro virtuale protetta chiamata per restituire una regola specifica delle impostazioni locali per la formattazione degli output con importi negativi. |
do_negative_sign | Funzione membro virtuale protetta chiamata per restituire una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno negativo. |
do_pos_format | Funzione membro virtuale protetta chiamata per restituire una regola specifica delle impostazioni locali per la formattazione degli output con importi positivi. |
do_positive_sign | Funzione membro virtuale protetta chiamata per restituire una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno positivo. |
do_thousands_sep | Funzione membro virtuale protetta chiamata per restituire una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di separatore delle migliaia. |
frac_digits | Restituisce un conteggio del numero di cifre specifico delle impostazioni locali da visualizzare a destra di un separatore decimale. |
grouping | Restituisce una regola specifica delle impostazioni locali per determinare la modalità di raggruppamento delle cifre a sinistra della virgola decimale. |
neg_format | Restituisce una regola specifica delle impostazioni locali per la formattazione degli output con importi negativi. |
negative_sign | Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno negativo. |
pos_format | Restituisce una regola specifica delle impostazioni locali per la formattazione degli output con importi positivi. |
positive_sign | Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno positivo. |
thousands_sep | Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di separatore delle migliaia. |
Requisiti
Intestazione:<impostazioni locali>
Spazio dei nomi: std
moneypunct::char_type
Tipo utilizzato per descrivere un carattere utilizzato dalle impostazioni locali.
typedef CharType char_type;
Osservazioni:
Il tipo è un sinonimo del parametro di modello CharType.
moneypunct::curr_symbol
Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di valuta.
string_type curr_symbol() const;
Valore restituito
Stringa contenente il simbolo di valuta.
Osservazioni:
La funzione membro restituisce do_curr_symbol.
Esempio
// 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
Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di separatore decimale.
CharType decimal_point() const;
Valore restituito
Sequenza di elementi specifica delle impostazioni locali da usare come simbolo di separatore decimale.
Osservazioni:
La funzione membro restituisce do_decimal_point.
Esempio
// 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
Funzione membro virtuale protetta che restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di valuta.
virtual string_type do_curr_symbol() const;
Valore restituito
Sequenza di elementi specifica delle impostazioni locali da usare come simbolo di separatore decimale.
Esempio
Vedere l'esempio relativo a curr_symbol, in cui la funzione membro virtuale viene chiamata da curr_symbol
.
moneypunct::d o_decimal_point
Funzione membro virtuale protetta che restituisce una sequenza di elementi specifica delle impostazioni locali da usare come simbolo di separatore decimale.
virtual CharType do_decimal_point() const;
Valore restituito
Sequenza di elementi specifica delle impostazioni locali da usare come simbolo di separatore decimale.
Esempio
Vedere l'esempio relativo a decimal_point, in cui la funzione membro virtuale viene chiamata da decimal_point
.
moneypunct::d o_frac_digits
Funzione membro virtuale protetta che restituisce un conteggio del numero di cifre specifico delle impostazioni locali da visualizzare a destra di un separatore decimale.
virtual int do_frac_digits() const;
Valore restituito
Conteggio del numero di cifre specifico delle impostazioni locali da visualizzare a destra di un separatore decimale.
Esempio
Vedere l'esempio relativo a frac_digits, in cui la funzione membro virtuale viene chiamata da frac_digits
.
moneypunct::d o_grouping
Funzione membro virtuale protetta che restituisce una regola specifica delle impostazioni locali per determinare la modalità di raggruppamento delle cifre a sinistra di un separatore decimale.
virtual string do_grouping() const;
Valore restituito
Regola specifica delle impostazioni locali per determinare la modalità di raggruppamento delle cifre a sinistra della virgola decimale.
Esempio
Vedere l'esempio per il raggruppamento, in cui la funzione membro virtuale viene chiamata da grouping
.
moneypunct::d o_neg_format
Funzione membro virtuale protetta chiamata per restituire una regola specifica delle impostazioni locali per la formattazione degli output con importi negativi.
virtual pattern do_neg_format() const;
Valore restituito
La funzione membro virtuale protetta restituisce una regola specifica delle impostazioni locali per determinare la modalità di generazione di un campo di output di tipo valuta per un importo negativo. Ognuno dei quattro elementi di pattern::field
può avere i valori seguenti:
none
per trovare la corrispondenza con zero o più spazi o generare nulla.sign
per trovare una corrispondenza o generare un segno positivo o negativo.space
per trovare la corrispondenza con zero o più spazi o generare uno spazio.symbol
per trovare una corrispondenza o generare un simbolo di valuta.value
per trovare una corrispondenza o generare un valore monetario.
I componenti di un campo di output monetario vengono generati e i componenti di un campo di input monetario corrispondono nell'ordine in cui questi elementi vengono visualizzati in pattern::field
. Ognuno dei valori sign
, symbol
, value
e none
o space
deve essere visualizzato esattamente una volta. Il valore none
non deve essere visualizzato per primo. Il valore space
non deve essere visualizzato per primo o per ultimo. Se Intl
è true, l'ordine è symbol
, sign
, none
, quindi value
.
La versione del modello di moneypunct< CharType, Intl >
restituisce {money_base::symbol, money_base::sign, money_base::value, money_base::none}
.
Esempio
Vedere l'esempio relativo a neg_format, in cui la funzione membro virtuale viene chiamata da neg_format
.
moneypunct::d o_negative_sign
Funzione membro virtuale protetta chiamata per restituire una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno negativo.
virtual string_type do_negative_sign() const;
Valore restituito
Sequenza di elementi specifica delle impostazioni locali da usare come segno negativo.
Esempio
Vedere l'esempio relativo a negative_sign, in cui la funzione membro virtuale viene chiamata da negative_sign
.
moneypunct::d o_pos_format
Funzione membro virtuale protetta chiamata per restituire una regola specifica delle impostazioni locali per la formattazione degli output con importi positivi.
virtual pattern do_pos_format() const;
Valore restituito
La funzione membro virtuale protetta restituisce una regola specifica delle impostazioni locali per determinare la modalità di generazione di un campo di output di tipo valuta per un importo positivo. Determina anche come trovare le corrispondenze con i componenti di un campo di input monetario. La codifica è identica a quella per do_neg_format.
La versione del modello di moneypunct< CharType, Inputlterator >
restituisce { money_base::symbol, money_base::sign, money_base::value, money_base::none }
.
Esempio
Vedere l'esempio relativo a pos_format, in cui la funzione membro virtuale viene chiamata da pos_format
.
moneypunct::d o_positive_sign
Funzione membro virtuale protetta che restituisce una sequenza di elementi specifica delle impostazioni locali da usare come segno positivo.
virtual string_type do_positive_sign() const;
Valore restituito
Sequenza di elementi specifica delle impostazioni locali da usare come segno positivo.
Esempio
Vedere l'esempio relativo a positive_sign, in cui la funzione membro virtuale viene chiamata da positive_sign
.
moneypunct::d o_thousands_sep
Funzione membro virtuale protetta che restituisce un elemento specifico delle impostazioni locali da usare come separatore dei gruppi a sinistra della virgola decimale.
virtual CharType do_thousands_sep() const;
Valore restituito
Elemento specifico delle impostazioni locali da usare come separatore dei gruppi a sinistra della virgola decimale.
Esempio
Vedere l'esempio relativo a thousands_sep, in cui la funzione membro virtuale viene chiamata da thousands_sep
.
moneypunct::frac_digits
Restituisce un conteggio del numero di cifre specifico delle impostazioni locali da visualizzare a destra di un separatore decimale.
int frac_digits() const;
Valore restituito
Conteggio del numero di cifre specifico delle impostazioni locali da visualizzare a destra di un separatore decimale.
Osservazioni:
La funzione membro restituisce do_frac_digits.
Esempio
// 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
Restituisce una regola specifica delle impostazioni locali per determinare la modalità di raggruppamento delle cifre a sinistra della virgola decimale.
string grouping() const;
Valore restituito
Regola specifica delle impostazioni locali per determinare la modalità di raggruppamento delle cifre a sinistra della virgola decimale.
Osservazioni:
La funzione membro restituisce do_grouping.
Esempio
// 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
Costruttore di oggetti di tipo moneypunct
.
explicit moneypunct(size_t _Refs = 0);
Parametri
_Refs
Valore Integer che consente di specificare il tipo di gestione della memoria per l'oggetto.
Osservazioni:
I valori possibili per il parametro _Refs e il loro significato sono:
0: la durata dell'oggetto è gestita dalle impostazioni locali che lo contengono.
1: la durata dell'oggetto deve essere gestita manualmente.
> 1: questi valori non sono definiti.
Non è possibile fornire esempi diretti, poiché il distruttore è protetto.
Il costruttore inizializza l'oggetto di base con locale::facet(_ Refs).
moneypunct::neg_format
Restituisce una regola specifica delle impostazioni locali per la formattazione degli output con importi negativi.
pattern neg_format() const;
Valore restituito
Regola specifica delle impostazioni locali per la formattazione degli output con importi negativi.
Osservazioni:
La funzione membro restituisce do_neg_format.
Esempio
// 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
Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno negativo.
string_type negative_sign() const;
Valore restituito
Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno negativo.
Osservazioni:
La funzione membro restituisce do_negative_sign.
Esempio
// 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
Restituisce una regola specifica delle impostazioni locali per la formattazione degli output con importi positivi.
pattern pos_format() const;
Valore restituito
Regola specifica delle impostazioni locali per la formattazione degli output con importi positivi.
Osservazioni:
La funzione membro restituisce do_pos_format.
Esempio
// 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
Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di segno positivo.
string_type positive_sign() const;
Valore restituito
Sequenza di elementi specifica delle impostazioni locali da usare come simbolo di segno positivo.
Osservazioni:
La funzione membro restituisce do_positive_sign.
Esempio
// 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
Tipo che descrive una stringa contenente caratteri di tipo CharType.
typedef basic_string<CharType, Traits, Allocator> string_type;
Osservazioni:
Il tipo descrive una specializzazione del modello di classe basic_string i cui oggetti possono archiviare copie delle sequenze di punteggiatura.
moneypunct::thousands_sep
Restituisce una sequenza di elementi specifica delle impostazioni locali da utilizzare come simbolo di separatore delle migliaia.
CharType thousands_sep() const;
Valore restituito
Sequenza di elementi specifica delle impostazioni locali da usare come separatore delle migliaia.
Osservazioni:
La funzione membro restituisce do_thousands_sep.
Esempio
// 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: ,
Vedi anche
<impostazioni locali>
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)