std::locale::id(3)

NAME
std::locale::id - std::locale::id

Synopsis
   Defined in header <locale>
   class locale::id;
   The class std::locale::id provides implementation-specific identification of a
   locale facet. Each class derived from std::locale::facet must have a public static
   member named id of type std::locale::id and each std::locale object maintains a list
   of facets it implements, indexed by their ids.
   Facets with the same id belong to the same facet category and replace each other
   when added to a locale object.

Member functions
   constructor constructs a new id
                 (public member function)
   operator= copy assignment operator is deleted
                 (public member function)

Example
   The following example shows how to construct a minimal custom facet. // Run this code
 #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';
 }

Output:
 has_facet<myfacet>(myloc) returns true

See also
         the base class for all facet categories: each facet of any category is derived
   facet from this type
         (class)