Sdílet prostřednictvím


moneypunct – třída

Šablona třídy popisuje objekt, který může sloužit jako omezující vlastnost národního prostředí, která popisuje posloupnosti typu CharType sloužící k reprezentaci peněžního vstupního pole nebo peněžního výstupního pole. Pokud je parametr šablony Intl pravdivý, jsou pozorovány mezinárodní konvence.

Syntaxe

template <class CharType, bool Intl>
class moneypunct;

Parametry

CharType
Typ používaný v rámci programu ke kódování znaků.

Intl
Příznak určující, zda je třeba dodržovat mezinárodní konvence.

Poznámky

Stejně jako u omezující vlastnosti národního prostředí má ID statického objektu počáteční uloženou hodnotu nula. První pokus o přístup k uložené hodnotě ukládá jedinečnou kladnou hodnotu v ID.

Const static object intl ukládá hodnotu parametru šablony Intl.

Konstruktory

Konstruktor Popis
moneypunct Konstruktor objektů typu moneypunct.

Typedefs

Název typu Popis
char_type Typ, který se používá k popisu znaku používaného národním prostředním.
string_type Typ, který popisuje řetězec obsahující znaky typu CharType.

Členské funkce

Členová funkce Popis
curr_symbol Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol měny.
decimal_point Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol desetinné čárky.
do_curr_symbol Chráněná virtuální členská funkce, která vrátí sekvenci prvků specifickou pro národní prostředí, která se použije jako symbol měny.
do_decimal_point Chráněná virtuální členská funkce, která je volána k vrácení sekvence prvků specifických pro národní prostředí, která se použije jako symbol desetinné čárky.
do_frac_digits Chráněná virtuální členská funkce, která vrátí počet číslic specifický pro národní prostředí, který se zobrazí vpravo od každé desetinné čárky.
do_grouping Chráněná virtuální členská funkce, která vrátí pravidlo specifické pro národní prostředí k určení způsobu seskupení číslic vlevo od desetinné čárky.
do_neg_format Chráněná virtuální členská funkce, která je volána k vrácení pravidla specifického pro národní prostředí pro formátování výstupů se zápornými částkami.
do_negative_sign Chráněná virtuální členská funkce, která je volána k vrácení sekvence prvků specifických pro národní prostředí, která se použije jako symbol záporného znaménka.
do_pos_format Chráněná virtuální členská funkce, která je volána k vrácení pravidla specifického pro národní prostředí pro formátování výstupů s kladnými částkami.
do_positive_sign Chráněná virtuální členská funkce, která je volána k vrácení sekvence prvků specifických pro národní prostředí, která se použije jako symbol kladného znaménka.
do_thousands_sep Chráněná virtuální členská funkce, která je volána k vrácení sekvence prvků specifických pro národní prostředí, která se použije jako symbol oddělovače tisíců.
frac_digits Vrátí počet číslic specifický pro národní prostředí, který se zobrazí vpravo od každé desetinné čárky.
seskupení Vrátí pravidlo specifické pro národní prostředí určující způsob seskupení číslic nalevo od desetinné čárky.
neg_format Vrátí pravidlo specifické pro národní prostředí pro formátování výstupů se zápornými částkami.
negative_sign Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol záporného znaménka.
pos_format Vrátí pravidlo specifické pro národní prostředí pro formátování výstupů s kladnými částkami.
positive_sign Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol kladného znaménka.
thousands_sep Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol oddělovače tisíců.

Požadavky

Záhlaví:<národní prostředí>

Obor názvů: std

moneypunct::char_type

Typ, který se používá k popisu znaku používaného národním prostředním.

typedef CharType char_type;

Poznámky

Typ je synonymem parametru šablony CharType.

moneypunct::curr_symbol

Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol měny.

string_type curr_symbol() const;

Návratová hodnota

Řetězec obsahující symbol měny.

Poznámky

Členová funkce vrátí do_curr_symbol.

Příklad

// 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

Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol desetinné čárky.

CharType decimal_point() const;

Návratová hodnota

Sekvence prvků specifických pro národní prostředí, která se má použít jako symbol desetinné čárky.

Poznámky

Členová funkce vrátí do_decimal_point.

Příklad

// 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

Chráněná virtuální členská funkce, která vrátí sekvenci prvků specifickou pro národní prostředí, která se použije jako symbol měny.

virtual string_type do_curr_symbol() const;

Návratová hodnota

Sekvence prvků specifických pro národní prostředí, která se má použít jako symbol desetinné čárky.

Příklad

Podívejte se na příklad curr_symbol, kde je virtuální členová funkce volána curr_symbol.

moneypunct::d o_decimal_point

Chráněná virtuální členová funkce, která vrací sekvenci prvků specifických pro národní prostředí, která se použije jako symbol desetinné čárky.

virtual CharType do_decimal_point() const;

Návratová hodnota

Sekvence prvků specifických pro národní prostředí, která se má použít jako symbol desetinné čárky.

Příklad

Podívejte se na příklad decimal_point, kde je virtuální členová funkce volána decimal_point.

moneypunct::d o_frac_digits

Chráněná virtuální členová funkce, která vrací počet číslic specifických pro národní prostředí, které se mají zobrazit napravo od libovolné desetinné čárky.

virtual int do_frac_digits() const;

Návratová hodnota

Počet číslic specifických pro národní prostředí, které se mají zobrazit napravo od libovolné desetinné čárky.

Příklad

Podívejte se na příklad frac_digits, kde je virtuální členová funkce volána frac_digits.

moneypunct::d o_grouping

Chráněná virtuální členová funkce, která vrací pravidlo specifické pro národní prostředí pro určení způsobu seskupení číslic vlevo od libovolné desetinné čárky.

virtual string do_grouping() const;

Návratová hodnota

Pravidlo specifické pro národní prostředí pro určení způsobu seskupení číslic vlevo od libovolné desetinné čárky.

Příklad

Podívejte se na příklad seskupení, kde je volána groupingvirtuální členová funkce .

moneypunct::d o_neg_format

Chráněná virtuální členská funkce, která je volána k vrácení pravidla specifického pro národní prostředí pro formátování výstupů se zápornými částkami.

virtual pattern do_neg_format() const;

Návratová hodnota

Chráněná virtuální členová funkce vrátí pravidlo specifické pro národní prostředí pro určení způsobu generování peněžního výstupního pole pro zápornou částku. Každý ze čtyř prvků pattern::field může mít hodnoty:

  • none aby odpovídaly nule nebo více mezer nebo negenerovaly nic.

  • sign aby se shodoval nebo vygeneroval kladné nebo záporné znaménko.

  • space aby odpovídaly nule nebo více mezer nebo vygenerovaly mezeru.

  • symbol nebo vygenerování symbolu měny.

  • value a vygeneruje peněžní hodnotu.

Komponenty peněžního výstupního pole se generují a komponenty peněžního vstupního pole se shodují v pořadí, v pattern::fieldjakém se tyto prvky zobrazují . Každá z hodnot sign, , symbolvaluea buď none nebo space musí být zobrazena přesně jednou. none Hodnota se nesmí zobrazit jako první. Hodnota space se nesmí zobrazovat jako první nebo poslední. Pokud Intl je pravda, pořadí je symbol, signnone, pak value.

Verze šablony moneypunct< CharType, Intl > vrácení {money_base::symbol, money_base::sign, money_base::value, money_base::none}.

Příklad

Podívejte se na příklad neg_format, kde je virtuální členová funkce volána neg_format.

moneypunct::d o_negative_sign

Chráněná virtuální členská funkce, která je volána k vrácení sekvence prvků specifických pro národní prostředí, která se použije jako symbol záporného znaménka.

virtual string_type do_negative_sign() const;

Návratová hodnota

Sekvence prvků specifických pro národní prostředí, která se má použít jako záporné znaménko.

Příklad

Podívejte se na příklad negative_sign, kde je virtuální členová funkce volána negative_sign.

moneypunct::d o_pos_format

Chráněná virtuální členská funkce, která je volána k vrácení pravidla specifického pro národní prostředí pro formátování výstupů s kladnými částkami.

virtual pattern do_pos_format() const;

Návratová hodnota

Chráněná virtuální členová funkce vrátí pravidlo specifické pro národní prostředí pro určení, jak vygenerovat peněžní výstupní pole pro kladnou částku. (Také určuje, jak se mají shodovat s komponentami pole peněžního vstupu.) Kódování je stejné jako pro do_neg_format.

Verze šablony moneypunct< CharType, Inputlterator > vrácení { money_base::symbol, money_base::sign, money_base::value, money_base::none }.

Příklad

Podívejte se na příklad pos_format, kde je virtuální členová funkce volána pos_format.

moneypunct::d o_positive_sign

Chráněná virtuální členová funkce, která vrací sekvenci prvků specifických pro národní prostředí, která se použije jako kladné znaménko.

virtual string_type do_positive_sign() const;

Návratová hodnota

Sekvence prvků specifických pro národní prostředí, která se má použít jako kladné znaménko.

Příklad

Podívejte se na příklad positive_sign, kde je virtuální členová funkce volána positive_sign.

moneypunct::d o_thousands_sep

Chráněná virtuální členová funkce, která vrací prvek specifický pro národní prostředí, který se použije jako oddělovač skupin vlevo od libovolné desetinné čárky.

virtual CharType do_thousands_sep() const;

Návratová hodnota

Prvek specifický pro národní prostředí, který se použije jako oddělovač skupiny vlevo od libovolné desetinné čárky.

Příklad

Podívejte se na příklad thousands_sep, kde je virtuální členová funkce volána thousands_sep.

moneypunct::frac_digits

Vrátí počet číslic specifický pro národní prostředí, který se zobrazí vpravo od každé desetinné čárky.

int frac_digits() const;

Návratová hodnota

Počet číslic specifických pro národní prostředí, které se mají zobrazit napravo od libovolné desetinné čárky.

Poznámky

Členová funkce vrátí do_frac_digits.

Příklad

// 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

Vrátí pravidlo specifické pro národní prostředí určující způsob seskupení číslic nalevo od desetinné čárky.

string grouping() const;

Návratová hodnota

Pravidlo specifické pro národní prostředí pro určení způsobu seskupení číslic vlevo od libovolné desetinné čárky.

Poznámky

Členová funkce vrátí do_grouping.

Příklad

// 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

Konstruktor objektů typu moneypunct.

explicit moneypunct(size_t _Refs = 0);

Parametry

_Refs
Celočíselná hodnota použitá k určení typu správy paměti pro objekt.

Poznámky

Možné hodnoty pro parametr _Refs a jejich významnost jsou:

  • 0: Životnost objektu je spravována národními prostředími, které ho obsahují.

  • 1: Životnost objektu musí být spravována ručně.

  • > 1: Tyto hodnoty nejsou definovány.

Nejsou možné žádné přímé příklady, protože destruktor je chráněn.

Konstruktor inicializuje svůj základní objekt s locale::facet(_ Refs).

moneypunct::neg_format

Vrátí pravidlo specifické pro národní prostředí pro formátování výstupů se zápornými částkami.

pattern neg_format() const;

Návratová hodnota

Pravidlo specifické pro národní prostředí pro formátování výstupů s zápornými částkami.

Poznámky

Členová funkce vrátí do_neg_format.

Příklad

// 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

Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol záporného znaménka.

string_type negative_sign() const;

Návratová hodnota

Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol záporného znaménka.

Poznámky

Členová funkce vrátí do_negative_sign.

Příklad

// 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

Vrátí pravidlo specifické pro národní prostředí pro formátování výstupů s kladnými částkami.

pattern pos_format() const;

Návratová hodnota

Pravidlo specifické pro národní prostředí pro formátování výstupů s kladnými objemy.

Poznámky

Členová funkce vrátí do_pos_format.

Příklad

// 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

Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol kladného znaménka.

string_type positive_sign() const;

Návratová hodnota

Sekvence prvků specifických pro národní prostředí, která se má použít jako symbol kladného znaménka.

Poznámky

Členová funkce vrátí do_positive_sign.

Příklad

// 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

Typ, který popisuje řetězec obsahující znaky typu CharType.

typedef basic_string<CharType, Traits, Allocator> string_type;

Poznámky

Typ popisuje specializaci šablony třídy basic_string , jejichž objekty mohou ukládat kopie interpunkčních sekvencí.

moneypunct::thousands_sep

Vrátí sekvenci prvků pro specifické národní prostředí, která se použije jako symbol oddělovače tisíců.

CharType thousands_sep() const;

Návratová hodnota

Sekvence prvků specifických pro národní prostředí, která se má použít jako oddělovač tisíců

Poznámky

Členová funkce vrátí do_thousands_sep.

Příklad

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

Viz také

<locale>
Bezpečný přístup z více vláken ve standardní knihovně C++