std::locale::id

来自cppreference.com
< cpp‎ | locale‎ | locale
 
 
 
 
在标头 <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

参阅

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