locale 類別
描述地區設定物件的類別,將特定文化特性資訊封裝做為共同定義特定當地語系化環境的一組 facet。
class locale;
備註
facet 是指向衍生自 facet 類別之類別物件的指標,具有下列格式的 public 物件:
static locale::id id;
您可以定義這些 facet 的開放集合。 您也可以建構地區設定物件來指定任意數目的 facet。
這些 facet 的預先定義群組代表地區設定分類,在 Standard C 程式庫中傳統上由 setlocale 函式管理。
分類 collate (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>
分類 monetary (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> >
分類 numeric (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> >
分類 messages (LC_MESSAGES) 包含下列 facet:
messages<char>
messages<wchar_t>
(最後分類為 Posix 所需,但 C Standard 不需要。)
iostreams 類別使用某些預先定義的 facet,以控制數值轉換和文字序列之間來回轉換。
locale 類別的物件也會儲存地區設定名稱做為 string 類別的物件。 使用無效的地區設定名稱來建構地區設定 facet 或地區設定物件,會擲回 runtime_error 類別的物件。 如果地區設定物件無法確定 C-Style 地區設定正確對應於物件所表示的項目,儲存的地區設定名稱為 "*"。 否則,您可以在 Standard C 程式庫內藉由呼叫 setlocale(LC_ALL, _Loc.name().c_str()),針對地區設定物件 _Loc 建立相符的地區設定。
在這個實作,您也可以呼叫靜態成員函式:
static locale empty( );
建構沒有 facet 的地區設定物件。 它也是透明地區設定;如果樣板函式 has_facet 和 use_facet 在透明地區設定中找不到所要求的 facet,這些函式會先查閱全域地區設定,如果它是透明,再查閱傳統地區設定。 因此,您可以撰寫:
cout.imbue(locale::empty( ));
對 cout 的後續插入是由全域地區設定的目前狀態調解。 您甚至可以撰寫:
locale loc(locale::empty( ), locale::classic( ),
locale::numeric);
cout.imbue(loc);
即使全域地區設定提供插入日期和貨幣金額數量的變更規則,對 cout 後續插入的數字格式化規則與 C 地區設定保持相同。
建構函式
建立地區設定、地區設定複本,或 facet 或分類已被其他地區設定的 facet 或分類取代的地區設定複本。 |
Typedef
整數類型,提供位元遮罩值以表示標準 facet 系列。 |
成員函式
將指定之地區設定的 facet 插入至目標地區設定。 |
|
傳回儲存的地區設定名稱。 |
靜態函式
此靜態成員函式傳回表示傳統 C 地區設定的地區設定物件。 |
|
重設程式的預設地區設定。 |
運算子
測試兩個地區設定是否不等。 |
|
比較兩個 basic_string 物件。 |
|
測試兩個地區設定是否相等。 |
類別
做為所有地區設定 facet 之基底類別的類別。 |
|
此成員類別提供唯一 facet 項目識別,做為用於地區設定中查詢 facet 的索引鍵。 |
需求
標頭:<locale>
命名空間: std