public member function
<ios> <iostream>

std::ios_base::imbue

locale imbue (const locale& loc);
灌輸區域設定
loc 關聯到流,作為用於區分割槽域設定的操作的新區域設定物件。

在此之前,該函式會呼叫透過成員 register_callback 註冊的所有函式,並將 imbue_event 作為第一個引數。

標準流類不繼承此成員,而是繼承 basic_ios::imbue,後者會呼叫此函式,但也會將 locale 關聯到關聯的*流緩衝區*(如果存在)。

引數

loc
作為流的新區域設定關聯的 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


資料競爭

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

異常安全

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

另見