std::locale::id

来自cppreference.com
< cpp‎ | locale‎ | locale
定义于头文件 <locale>
class locale::id;

std::locale::id 提供本地环境片面的实现限定标识。每个导出自 std::locale::facet 的类都必须拥有名为 idstd::locale::id 类型公开静态成员,而每个 std::locale 对象维护其所实装的 facet 列表,以其 id 索引。

拥有相同 id 的 facet 属于同一平面类别,并且在添加到 locale 对象时彼此替换。

[编辑] 成员函数

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

[编辑] 示例

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

#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) returns " << std::boolalpha
              << std::has_facet<myfacet>(myloc) << '\n';
}

输出:

has_facet<myfacet>(myloc) returns true

[编辑] 参阅

所有平面分类的分类:任何分类的每个 facet 都从此类型导出
(类) [编辑]