public member function
<ios> <iostream>

std::ios::imbue

locale imbue (const locale& loc);
灌輸區域設定
loc 關聯到流及其關聯的流緩衝區(如果有)上,作為用於本地化敏感操作的新 locale 物件。

此函式呼叫其繼承的同名函式 ios_base::imbue(loc),並且如果該流與流緩衝區關聯,它還會呼叫 rdbuf()->pubimbue(loc)

透過成員 register_callback 註冊的所有回撥函式都由 ios_base::imbue 呼叫。

引數

loc
要作為流的新 locale 注入的 locale 物件。

返回值

呼叫前的流關聯的 locale 物件。

示例

1
2
3
4
5
6
7
8
9
10
11
// imbue example
#include <iostream>     // std::cout
#include <locale>       // std::locale

int main()
{
  std::locale mylocale("");   // get global locale
  std::cout.imbue(mylocale);  // imbue global locale
  std::cout << 3.14159 << '\n';
  return 0;
}

此程式碼使用環境中提供的全域性區域設定來寫入一個浮點數。例如,在一個將西班牙區域設定配置為預設值的系統中,這可能會使用逗號作為小數點分隔符來寫入數字
3,14159


資料競爭

修改流物件。
併發訪問同一個流物件可能導致資料爭用。

異常安全

基本保證:如果丟擲異常,流處於有效狀態。

另見