1) Default constructor: creates an object of type
std::locale::id with implementation-specific content.
Because locales and facets must be available for the IO stream objects with static storage duration, such asstd::cout, typical implementations let implicit default constructor zero-initialize the contents ofstd::locale::id during static initialization (before constructors run for static objects), and when a facet is added to any locale for the first time, the locale completes initialization of the facet'sid.