Because facets are used by iostreams,
potentially while static constructors are running,
their initialization cannot depend on programmed static initialization
.One initialization strategy is for 
locale
to initialize each facet's 
id member
the first time an instance of the facet is installed into a locale
.