Spec-Zone.ru › C++

std::locale::id

Определен в заголовочном файле <locale>
class locale::id;

Класс std::locale::id предоставляет зависящую от реализации идентификацию фасета локали. Каждый фасет имеет открытый статический член с именем id типа std::locale::id, а каждый объект std::locale поддерживает список реализуемых им фасетов, индексируемых по их 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) returns " << std::boolalpha
              << std::has_facet<myfacet>(myloc) << '\n';
}

Вывод:

has_facet<myfacet>(myloc) returns true

См. также

фасет
базовый класс для всех категорий фасетов: каждый фасет любой категории производен от этого типа
(класс)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/locale/id

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API