Condividi tramite


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, valuee 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++)