std::locale::id

来自cppreference.com
< cpp‎ | locale‎ | locale
 
 
本地化库
本地环境与平面
本地环境
平面类别基类
ctype(字符类别)平面
numeric(数值)平面
collate(对照比较)平面
time(时间)平面
monetary(货币)平面
messages(消息)平面
字符分类与转换
字符分类
转换
编码转换平面
(C++11)    
C 本地环境
 
 
在标头 <locale> 定义
class locale::id;

std::locale::id 提供本地环境平面的实现限定标识。每个平面都拥有名为 idstd::locale::id 类型公开静态成员,而每个 std::locale 对象维护它所实装的平面列表,通过 id 索引。

拥有相同 id 的平面属于同一平面类别,并且在添加到本地环境对象时会互相替换。

成员函数

构造新的 id
(公开成员函数)
operator=
复制赋值运算符被删除
(公开成员函数)

示例

下列代码展示如何构造最小的定制平面。

#include <iostream>
#include <locale>
 
struct myfacet : std::locale::facet
{
    myfacet(std::size_t refs = 0) : facet(refs) {}
    static ::std::locale::id id;
};
 
std::locale::id myfacet::id;
 
int main()
{
    std::locale myloc(std::locale(), new myfacet);
    std::cout << "has_facet<myfacet>(myloc) 返回 " << std::boolalpha
              << std::has_facet<myfacet>(myloc) << '\n';
}

输出:

has_facet<myfacet>(myloc) 返回 true

参阅

所有平面类别的基类:任何类别的每个平面都会从此类型派生
(类)