moneypunct 類別
類別範本描述可作為地區設定 Facet 的物件,以描述用來代表貨幣輸入欄位或貨幣輸出欄位之 CharType 類型的序列。 如果範本參數 International 為 true,則會觀察到國際標準。
語法
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
的順序進行比對。 每個值sign
、symbol
、 value
和或 space
none
必須只出現一次。 值 none
不得先出現。 值 space
不得先出現或最後一個。 如果 Intl
為 true,則順序為 symbol
、、none
sign
、 和 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: ,