std::locale::facet
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <locale> | ||
| class locale::facet; | ||
std::locale::facet is the base class for facets. It provides a common base class so that locales could store pointers to the facets they implement in a single indexed container, and it abstracts support for facet reference counting. Whenever a facet is added to a locale, the locale increments the reference count in the facet (through an implementation-specific mechanism). Whenever a locale is destructed or modified, it decrements the reference count in each facet it no longer implements. Whenever a facet's reference count becomes zero, the locale performs delete static_cast<std::locale::facet*>(f) where f is the pointer to the facet.
[edit] Member functions
| constructs a new facet with specified reference count (protected member function) | |
| operator= | the copy assignment operator is deleted (protected member function) | 
| (destructor) [virtual] | the destructor is protected virtual (virtual protected member function) | 
[edit] Example
| This section is incomplete Reason: no example | 
[edit] See also
| the facet index type: each facet class must declare or inherit a public static member of this type (class) | 


