std::locale::facet

< cpp‎ | locale‎ | locale
在标头 <locale> 定义
class locale::facet;

std::locale::facet 是刻面的基类。它提供一个共用基类,使得本地环境能在单个索引容器中存储指向其所实装的各刻面的指针,而且它抽象了对刻面引用计数的支持。

添加刻面到本地环境时,本地环境会增加刻面中的引用计数(通过实现特定的机制)。每次析构或修改本地环境时,它减少每个它不再实装的刻面中的引用计数。刻面的引用计数变为零时,本地环境会执行 delete static_cast<std::locale::facet*>(f),其中 f 是指向刻面的指针。

刻面类

以下的类都是刻面

static ::std::locale::id id;

成员函数

构造带指定引用计数的新 facet
(受保护成员函数)
operator=
复制赋值运算符被弃置
(受保护成员函数)
(析构函数)
[虚]
析构函数为受保护虚函数
(虚受保护成员函数)

示例

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 2694 C++98 LWG 问题 436 的解决方案移除了刻面的定义 补上定义

参阅

刻面索引类型:每个刻面类必须声明或继承一个此类型的公开静态成员
(类)