public member function
<ios> <iostream>

std::basic_ios::imbue

locale imbue (const locale& loc);
灌输区域设置
loc 关联到流及其关联的流缓冲区(如果有)上,作为用于本地化敏感操作的新区域设置对象。

此函数调用其继承的同名函数ios_base::imbue(loc),并且如果流与流缓冲区关联,它还会调用 rdbuf()->pubimbue(loc)

通过成员 register_callback 注册的所有回调函数都会被 ios_base::imbue 调用。

参数

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


数据竞争

修改流对象。
并发访问同一个流对象可能导致数据争用。

异常安全

基本保证:如果抛出异常,流处于有效状态。

另见