locale Class

描述封裝成一組共同定義特定的當地語系化的環境的 facet 的文化特性資訊的地區設定物件的類別。

class locale {
public:
    class facet;
    class id;
    typedef int category;
    static const category none, collate, ctype, monetary,
        numeric, time, messages, all;
    locale();
    explicit locale(
        const char *_Locname
);
    explicit locale(
        const string& _Locname
);
    locale(
        const locale& _Loc, 
        const locale& _Other,
        category cat
    );
    locale(
        const locale& _Loc, 
        const char *_Locname, 
        category cat
    );
    locale(
        const locale& _Loc, 
        const string& _Locname, 
        category _Cat
    );
    template<class Facet>
        locale(
            const locale& _Loc, 
            Facet *_Fac
        );
    template<class Facet>
        locale combine(
            const locale& _Loc
) const;
    template<class Elem, class Tr, class Alloc>
        bool operator()(
            const basic_string<Elem, Tr, Alloc>& _Left,
            const basic_string<Elem, Tr, Alloc>& _Right
        ) const;
    string name() const;
    bool operator== (
        const locale& _Right
    ) const;
    bool operator!=(
        const locale& _Right
    ) const;
    static locale global(
        const locale& _Right
    );
    static const locale& classic();
    };

備註

Facet 是衍生自類別的類別的物件指標 facet ,都有一個公用的物件的表單:

static locale::id id;

您可以定義這些 facet 的開放組。您也可以建構一個地區設定物件,指定任意數目的 facet。

這些 facet 的預先定義的群組代表的地區設定類別標準的 c 程式庫函式傳統上 managed setlocale

類別自動分頁 (LC_COLLATE) 包含 facet:

collate<char>
collate<wchar_t>

類別 ctype (LC_CTYPE) 包含 facet:

ctype<char>
ctype<wchar_t>
codecvt<char, char, mbstate_t>
codecvt<wchar_t, char, mbstate_t>
codecvt<char16_t, char, mbstate_t>
codecvt<char32_t, char, mbstate_t>

類別的貨幣 (LC_MONETARY) 中包含了 facet:

moneypunct<char, false>
moneypunct<wchar_t, false>
moneypunct<char, true>
moneypunct<wchar_t, true>
money_get<char, istreambuf_iterator<char> >
money_get<wchar_t, istreambuf_iterator<wchar_t> >
money_put<char, ostreambuf_iterator<char> >
money_put<wchar_t, ostreambuf_iterator<wchar_t> >

類別數字 (LC_NUMERIC) 包含 facet:

num_get<char, istreambuf_iterator<char> >
num_get<wchar_t, istreambuf_iterator<wchar_t> >
num_put<char, ostreambuf_iterator<char> >
num_put<wchar_t, ostreambuf_iterator<wchar_t> >
numpunct<char>
numpunct<wchar_t>

類別 time (LC_TIME) 所含的 facet:

time_get<char, istreambuf_iterator<char> >
time_get<wchar_t, istreambuf_iterator<wchar_t> >
time_put<char, ostreambuf_iterator<char> >
time_put<wchar_t, ostreambuf_iterator<wchar_t> >

類別的訊息 (LC_MESSAGES) 包含 facet:

messages<char>
messages<wchar_t>

(最後一個類別所需的 Posix,但不是 c 標準)。

這些預先定義的 facet 的一些用於 iostreams 類別中,控制進出文字順序的數值轉換。

類別的地區設定的物件也會將地區設定名稱儲存為類別的物件字串。使用無效的地區設定名稱來建構的地區設定 facet 或地區設定物件類別的物件就會擲回 runtime_error。預存的地區設定名稱是"*"如果地區設定物件無法確定 c-style 地區設定相當於該物件所代表。否則,您可以建立相符的地區設定標準的 c 程式庫,為地區設定物件中_Loc,藉由呼叫setlocale(LC_ALL, _Loc。名稱().c_str()).

在此實作中,您也可以呼叫靜態成員函式:

static locale empty( );

若要建構一個地區設定物件有沒有 facet。它也是透明的地區設定; 如果樣板函式 has_facetuse_facet 找不到要求的一環的透明的地區設定,這些參考第一次全域地區設定,然後,如果這是透明的傳統的地區設定。因此,您可以撰寫:

cout.imbue(locale::empty( ));

後續插入的資料來 cout 由全域地區設定的目前狀態中操作。您甚至可以撰寫:

locale loc(locale::empty( ), locale::classic( ),
    locale::numeric);
cout.imbue(loc);

數字格式化規則後續插入的資料來cout不變,c 的地區設定,請按照般全域地區設定提供變更插入日期及貨幣總額的規則。

1w3527e2.collapse_all(zh-tw,VS.110).gif建構函式

Locale - 地區設定

建立地區設定,或複本的地區設定或其中的一環或分類已被取代的一環或從另一個地區設定的類別的地區設定的複本。

1w3527e2.collapse_all(zh-tw,VS.110).gifTypedef

分類

提供代表標準的一環系列的位元遮罩值的整數型別。

1w3527e2.collapse_all(zh-tw,VS.110).gif成員函式

combine

從指定的地區設定中插入目標地區設定的一環。

name

傳回預存的地區設定名稱。

1w3527e2.collapse_all(zh-tw,VS.110).gif靜態函式

傳統

靜態成員函式會傳回一個代表傳統 c 地區設定的地區設定物件。

global

重設本機程式預設值。

1w3527e2.collapse_all(zh-tw,VS.110).gif運算子

運算子! =

測試不相等的兩個地區設定。

運算子)

比較兩個 basic_string 物件。

運算子 = =

測試相等的兩個地區設定。

1w3527e2.collapse_all(zh-tw,VS.110).gif類別

Facet

做為讓所有的地區設定 facet 的基底類別的類別。

id

成員類別提供用來作為索引查閱的地區設定的 facet 一個唯一的一環識別資訊。

需求

標頭: <locale>

Namespace: 標準

請參閱

參考

在標準 C++ 程式庫中的執行緒安全

其他資源

成員的地區設定

<locale> 成員