numpunct 類別
類別範本,描述可做為本機 Facet 的物件,以描述用來表示數值和布爾運算式之格式設定和標點符號資訊的型 CharType
別序列。
語法
template <class CharType>
class numpunct : public locale::facet;
參數
CharType
程式內用於編碼地區設定字元的類型。
備註
如同所有地區設定 facet,靜態物件識別碼有初始儲存值零。 第一次嘗試存取它的儲存值時,會在 id 中儲存一個唯一的正值。
建構函式
建構函式 | 描述 |
---|---|
numpunct | numpunct 類型物件的建構函式。 |
Typedefs
類型名稱 | 描述 |
---|---|
char_type | 類型,用來描述由地區設定使用的字元。 |
string_type | 類型,描述包含 CharType 類型字元的字串。 |
成員函式
成員函數 | 描述 |
---|---|
decimal_point | 傳回地區設定特定項目以做為小數點。 |
do_decimal_point | 受保護的虛擬成員函式,呼叫以傳回要做為小數點的地區設定特定項目。 |
do_falsename | 受保護的虛擬成員函式,呼叫以傳回要當做 false 值的文字表示的字串。 |
do_grouping | 受保護的虛擬成員函式,呼叫以傳回決定如何將數字群組在小數點左側的地區設定特定規則。 |
do_thousands_sep | 受保護的虛擬成員函式,呼叫以傳回要做為千位分隔符號的地區設定特定項目。 |
do_truename | 受保護的虛擬成員函式,呼叫以傳回要當做 true 值的文字表示的字串。 |
falsename | 傳回字串,做為 false 值的文字表示。 |
grouping | 傳回決定如何將數字群組在任何小數點左側的地區設定特定規則。 |
thousands_sep | 傳回地區設定特定項目以做為千位分隔符號。 |
truename | 傳回字串,做為 true 值的文字表示。 |
需求
Header:<locale>
命名空間:std
numpunct::char_type
類型,用來描述由地區設定使用的字元。
typedef CharType char_type;
備註
此類型與範本參數 CharType 同義。
numpunct::d ecimal_point
傳回地區設定特定項目以做為小數點。
CharType decimal_point() const;
傳回值
要做為小數點的地區設定特定項目。
備註
此成員函式會傳回 do_decimal_point。
範例
// numpunct_decimal_point.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const numpunct <char> &npunct =
use_facet <numpunct <char> >( loc);
cout << loc.name( ) << " decimal point "<<
npunct.decimal_point( ) << endl;
cout << loc.name( ) << " thousands separator "
<< npunct.thousands_sep( ) << endl;
};
German_Germany.1252 decimal point ,
German_Germany.1252 thousands separator .
numpunct::d o_decimal_point
受保護的虛擬成員函式,呼叫以傳回要做為小數點的地區設定特定項目。
virtual CharType do_decimal_point() const;
傳回值
要做為小數點的地區設定特定項目。
範例
請參閱 decimal_point 的範例,其中會由 decimal_point
呼叫此虛擬成員函式。
numpunct::d o_falsename
受保護的虛擬成員函式會傳回序列,以做為值的 false
文字表示。
virtual string_type do_falsename() const;
傳回值
字串,包含要當做值 false
之文字表示的序列。
備註
成員函式會傳回字串 「false」 來表示所有地區設定中的值 false
。
範例
請參閱 falsename 的範例,其中 falsename
會呼叫虛擬成員函式。
numpunct::d o_grouping
受保護的虛擬成員函式,呼叫以傳回決定如何將數字群組在小數點左側的地區設定特定規則。
virtual string do_grouping() const;
傳回值
地區設定特定規則,用來決定任何小數點左邊數字分組的方式。
備註
受保護的虛擬成員函式傳回決定如何將數字群組在小數點左側的地區設定特定規則。 編碼和 lconv::grouping 相同。
範例
請參閱群組的範例,其中虛擬成員函式是由grouping
呼叫。
numpunct::d o_thousands_sep
受保護的虛擬成員函式,呼叫以傳回要做為千位分隔符號的地區設定特定項目。
virtual CharType do_thousands_sep() const;
傳回值
傳回地區設定特定項目以做為千位分隔符號。
備註
受保護的虛擬成員函式會傳回類型的 CharType
地區設定特定專案,以做為任何小數點左邊的群組分隔符。
範例
請參閱 thousands_sep 的範例,其中會由 thousands_sep
呼叫此虛擬成員函式。
numpunct::d o_truename
受保護的虛擬成員函式,呼叫以傳回要當做 true
值的文字表示的字串。
virtual string_type do_truename() const;
備註
字串,做為 值的 true
文字表示。
所有地區設定都會傳回字串 「true」 來表示值 true
。
範例
請參閱 truename 的範例,其中 truename
會呼叫虛擬成員函式。
numpunct::falsename
傳回字串,做為 false
值的文字表示。
string_type falsename() const;
傳回值
字串,包含 CharType
要當做值 false
之文字表示的 序列。
備註
成員函式會傳回字串 「false」 來表示所有地區設定中的值 false
。
成員函式會傳回 do_falsename。
範例
// numpunct_falsename.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "English" );
const numpunct <char> &npunct = use_facet <numpunct <char> >( loc );
cout << loc.name( ) << " truename "<< npunct.truename( ) << endl;
cout << loc.name( ) << " falsename "<< npunct.falsename( ) << endl;
locale loc2( "French" );
const numpunct <char> &npunct2 = use_facet <numpunct <char> >(loc2);
cout << loc2.name( ) << " truename "<< npunct2.truename( ) << endl;
cout << loc2.name( ) << " falsename "<< npunct2.falsename( ) << endl;
}
English_United States.1252 truename true
English_United States.1252 falsename false
French_France.1252 truename true
French_France.1252 falsename false
numpunct::grouping
傳回決定如何將數字群組在任何小數點左側的地區設定特定規則。
string grouping() const;
傳回值
地區設定特定規則,用來決定任何小數點左邊數字分組的方式。
備註
此成員函式會傳回 do_grouping。
範例
// numpunct_grouping.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany");
const numpunct <char> &npunct =
use_facet < numpunct <char> >( loc );
for (unsigned int i = 0; i < npunct.grouping( ).length( ); i++)
{
cout << loc.name( ) << " international grouping:\n the "
<< i <<"th group to the left of the radix character "
<< "is of size " << (int)(npunct.grouping ( )[i])
<< endl;
}
}
German_Germany.1252 international grouping:
the 0th group to the left of the radix character is of size 3
numpunct::numpunct
numpunct
類型物件的建構函式。
explicit numpunct(size_t _Refs = 0);
參數
_裁判
整數值,用來指定物件的記憶體管理類型。
備註
_Refs 參數的可能值及其重要性如下:
0:物件的存留期由包含該物件的地區設定來管理。
1:物件的存留期必須以手動方式管理。
> 1:未定義這些值。
無法提供任何直接範例,因為解構函式受到保護。
建構函式會使用 locale::facet(_Refs
) 初始化其基底物件。
numpunct::string_type
類型,描述包含 CharType 類型字元的字串。
typedef basic_string<CharType, Traits, Allocator> string_type;
備註
此類型描述類別範本 的特製化basic_string 物件可以儲存標點符號序列的複本。
numpunct::thousands_sep
傳回地區設定特定項目以做為千位分隔符號。
CharType thousands_sep() const;
傳回值
要做為千位分隔符號的地區設定特定項目。
備註
此成員函式會傳回 do_thousands_sep。
範例
// numpunct_thou_sep.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "german_germany" );
const numpunct <char> &npunct =
use_facet < numpunct < char > >( loc );
cout << loc.name( ) << " decimal point "<<
npunct.decimal_point( ) << endl;
cout << loc.name( ) << " thousands separator "
<< npunct.thousands_sep( ) << endl;
};
German_Germany.1252 decimal point ,
German_Germany.1252 thousands separator .
numpunct::truename
傳回字串,做為 true
值的文字表示。
string_type falsename() const;
傳回值
字串,做為 值的 true
文字表示。
備註
成員函式會傳回 do_truename。
所有地區設定都會傳回字串 「true」 來表示值 true
。
範例
// numpunct_truename.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
locale loc( "English" );
const numpunct < char> &npunct = use_facet <numpunct <char> >( loc );
cout << loc.name( ) << " truename "<< npunct.truename( ) << endl;
cout << loc.name( ) << " falsename "<< npunct.falsename( ) << endl;
locale loc2("French");
const numpunct <char> &npunct2 = use_facet <numpunct <char> >( loc2 );
cout << loc2.name( ) << " truename "<< npunct2.truename( ) << endl;
cout << loc2.name( ) << " falsename "<< npunct2.falsename( ) << endl;
}
English_United States.1252 truename true
English_United States.1252 falsename false
French_France.1252 truename true
French_France.1252 falsename false