共用方式為


moneypunct 類別

類別範本描述可作為地區設定 Facet 的物件,以描述用來代表貨幣輸入欄位或貨幣輸出欄位之 CharType 類型的序列。 如果範本參數 Internationaltrue,則會觀察到國際標準。

語法

template <class CharType, bool Intl>
class moneypunct;

參數

CharType
用於程式內部字元編碼的類型。

國際
旗標,指定是否要遵守國際慣例。

備註

如同所有地區設定 facet,靜態物件識別碼有初始儲存值零。 第一次嘗試存取它的儲存值時,會在 id 中儲存一個唯一的正值。

常數靜態物件 intl 會儲存範本參數 Intl 的值。

建構函式

建構函式 描述
moneypunct moneypunct 類型物件的建構函式。

Typedefs

類型名稱 描述
char_type 類型,用來描述由地區設定使用的字元。
string_type 類型,描述包含 CharType 類型字元的字串。

成員函式

成員函數 描述
curr_symbol 傳回地區設定特定的項目序列,做為貨幣符號。
decimal_point 傳回地區設定特定的項目序列,做為小數點符號。
do_curr_symbol 受保護的虛擬成員函式,傳回地區設定特定的項目序列以做為貨幣符號。
do_decimal_point 受保護的虛擬成員函式,呼叫以傳回地區設定特定的項目序列,做為小數點符號。
do_frac_digits 受保護的虛擬成員函式傳回地區設定特定的小數點右邊位數。
do_grouping 受保護的虛擬成員函式傳回決定如何將數字群組在小數點左側的地區設定特定規則。
do_neg_format 受保護的虛擬成員函式,呼叫以傳回具有負數數量的格式化輸出的地區設定特定規則。
do_negative_sign 受保護的虛擬成員函式,呼叫以傳回地區設定特定的項目序列,做為負號。
do_pos_format 受保護的虛擬成員函式,呼叫以傳回具有正數數量的格式化輸出的地區設定特定規則。
do_positive_sign 受保護的虛擬成員函式,呼叫以傳回地區設定特定的項目序列,做為正號。
do_thousands_sep 受保護的虛擬成員函式,呼叫以傳回地區設定特定的項目序列,做為千位分隔符號。
frac_digits 傳回地區設定特定的小數點右邊位數。
grouping 傳回決定如何將數字群組在任何小數點左側的地區設定特定規則。
neg_format 傳回具有負數數量的格式化輸出的地區設定特定規則。
negative_sign 傳回地區設定特定的項目序列,做為負號。
pos_format 傳回具有正數數量的格式化輸出的地區設定特定規則。
positive_sign 傳回地區設定特定的項目序列,做為正號。
thousands_sep 傳回地區設定特定的項目序列,做為千位分隔符號。

需求

Header:<locale>

命名空間:std

moneypunct::char_type

類型,用來描述由地區設定使用的字元。

typedef CharType char_type;

備註

此類型與範本參數 CharType 同義。

moneypunct::curr_symbol

傳回地區設定特定的項目序列,做為貨幣符號。

string_type curr_symbol() const;

傳回值

包含貨幣符號的字串。

備註

此成員函式會傳回 do_curr_symbol

範例

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

傳回地區設定特定的項目序列,做為小數點符號。

CharType decimal_point() const;

傳回值

地區設定特定的元素序列,用來作為小數點符號。

備註

此成員函式會傳回 do_decimal_point

範例

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

受保護的虛擬成員函式,傳回地區設定特定的項目序列以做為貨幣符號。

virtual string_type do_curr_symbol() const;

傳回值

地區設定特定的元素序列,用來作為小數點符號。

範例

請參閱 curr_symbol 的範例,其中會由 curr_symbol 呼叫此虛擬成員函式。

moneypunct::d o_decimal_point

受保護的虛擬成員函式,會傳回地區設定特定的元素序列以作為貨幣符號。

virtual CharType do_decimal_point() const;

傳回值

地區設定特定的元素序列,用來作為小數點符號。

範例

請參閱 decimal_point 的範例,其中會由 decimal_point 呼叫此虛擬成員函式。

moneypunct::d o_frac_digits

受保護的虛擬成員函式,會傳回地區設定特定的小數點右邊位數。

virtual int do_frac_digits() const;

傳回值

地區設定特定的小數點右邊位數。

範例

請參閱 frac_digits 的範例,其中會由 frac_digits 呼叫此虛擬成員函式。

moneypunct::d o_grouping

受保護的虛擬成員函式,會傳回地區設定特定規則,來決定任何小數點左邊數字分組的方式。

virtual string do_grouping() const;

傳回值

地區設定特定規則,用來決定任何小數點左邊數字分組的方式。

範例

請參閱群組範例,其中虛擬成員函式是由grouping呼叫。

moneypunct::d o_neg_format

受保護的虛擬成員函式,呼叫以傳回具有負數數量的格式化輸出的地區設定特定規則。

virtual pattern do_neg_format() const;

傳回值

受保護的虛擬成員函式會傳回地區設定特定規則,來決定如何為負數金額產生貨幣輸出欄位。 的四個元素 pattern::field 中每一個都可以有 值:

  • none 以比對零或多個空格或不會產生任何內容。

  • sign 表示比對或產生正負號。

  • space 表示比對零或多個空格或產生空格。

  • symbol 表示比對或產生貨幣符號。

  • value 表示比對或產生貨幣值。

會產生貨幣輸出欄位的元件,而且貨幣輸入欄位的元件會依照這些專案出現在 pattern::field的順序進行比對。 每個值signsymbolvalue和或 space none 必須只出現一次。 值 none 不得先出現。 值 space 不得先出現或最後一個。 如果 Intl 為 true,則順序為 symbol、、nonesign、 和 value

moneypunct< CharType, Intl > 樣本版本會傳 {money_base::symbol, money_base::sign, money_base::value, money_base::none}回 。

範例

請參閱 neg_format 的範例,其中會由 neg_format 呼叫此虛擬成員函式。

moneypunct::d o_negative_sign

受保護的虛擬成員函式,呼叫以傳回地區設定特定的項目序列,做為負號。

virtual string_type do_negative_sign() const;

傳回值

地區設定特定的元素序列,用來作為負號。

範例

請參閱 negative_sign 的範例,其中會由 negative_sign 呼叫此虛擬成員函式。

moneypunct::d o_pos_format

受保護的虛擬成員函式,呼叫以傳回具有正數數量的格式化輸出的地區設定特定規則。

virtual pattern do_pos_format() const;

傳回值

受保護的虛擬成員函式會傳回地區設定特定規則,來決定如何為正數金額產生貨幣輸出欄位。 (它還決定如何比對貨幣輸入欄位的元件。編碼方式與 do_neg_format 相同。

moneypunct< CharType, Inputlterator > 樣本版本會傳 { money_base::symbol, money_base::sign, money_base::value, money_base::none }回 。

範例

請參閱 pos_format 的範例,其中會由 pos_format 呼叫此虛擬成員函式。

moneypunct::d o_positive_sign

受保護的虛擬成員函式,會傳回地區設定特定的元素序列以作為正號。

virtual string_type do_positive_sign() const;

傳回值

地區設定特定的元素序列,用來作為正號。

範例

請參閱 positive_sign 的範例,其中會由 positive_sign 呼叫此虛擬成員函式。

moneypunct::d o_thousands_sep

受保護的虛擬成員函式,會傳回地區設定特定的元素,用來作為任何小數點左邊的群組分隔符號。

virtual CharType do_thousands_sep() const;

傳回值

地區設定特定的元素,用來作為任何小數點左邊的群組分隔符號。

範例

請參閱 thousands_sep 的範例,其中會由 thousands_sep 呼叫此虛擬成員函式。

moneypunct::frac_digits

傳回地區設定特定的小數點右邊位數。

int frac_digits() const;

傳回值

地區設定特定的小數點右邊位數。

備註

此成員函式會傳回 do_frac_digits

範例

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

傳回決定如何將數字群組在任何小數點左側的地區設定特定規則。

string grouping() const;

傳回值

地區設定特定規則,用來決定任何小數點左邊數字分組的方式。

備註

此成員函式會傳回 do_grouping

範例

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

moneypunct 類型物件的建構函式。

explicit moneypunct(size_t _Refs = 0);

參數

_裁判
整數值,用來指定物件的記憶體管理類型。

備註

_Refs 參數的可能值及其重要性如下:

  • 0:物件的存留期由包含該物件的地區設定來管理。

  • 1:物件的存留期必須以手動方式管理。

  • > 1:未定義這些值。

無法提供任何直接範例,因為解構函式受到保護。

建構函式會以 locale::facet(_ Refs) 將其基底物件初始化。

moneypunct::neg_format

傳回具有負數數量的格式化輸出的地區設定特定規則。

pattern neg_format() const;

傳回值

地區設定特定規則,用來將具有負數金額的輸出格式化。

備註

此成員函式會傳回 do_neg_format

範例

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

傳回地區設定特定的項目序列,做為負號。

string_type negative_sign() const;

傳回值

傳回地區設定特定的項目序列,做為負號。

備註

此成員函式會傳回 do_negative_sign

範例

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

傳回具有正數數量的格式化輸出的地區設定特定規則。

pattern pos_format() const;

傳回值

地區設定特定規則,用來將具有正數金額的輸出格式化。

備註

此成員函式會傳回 do_pos_format

範例

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

傳回地區設定特定的項目序列,做為正號。

string_type positive_sign() const;

傳回值

地區設定特定的元素序列,用來作為正號。

備註

此成員函式會傳回 do_positive_sign

範例

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

類型,描述包含 CharType 類型字元的字串。

typedef basic_string<CharType, Traits, Allocator> string_type;

備註

此類型描述類別範本 的特製化basic_string 物件可以儲存標點符號序列的複本。

moneypunct::thousands_sep

傳回地區設定特定的項目序列,做為千位分隔符號。

CharType thousands_sep() const;

傳回值

地區設定特定的元素序列,用來作為千分號。

備註

此成員函式會傳回 do_thousands_sep

範例

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

另請參閱

<地區設定>
C++ 標準程式庫中的執行緒安全