template<class Facet>
const Facet& use_facet(const locale& loc,
const Facet *fac, bool make_it);
The template function returns a reference to the locale facet of class Facet
listed within the locale object loc
. If no
such object is listed, the function throws an object of class bad_cast
.
In this implementation, make_it
instructs the function to generate the locale facet on demand. But you should write
_USE
(loc, Facet)
, or _USEFAC
(loc, Facet)
in place of use_facet(loc, (Facet *)0, make_it)
, because
the second and third parameters are a nonstandard extension. The former is strongly preferred when looking up a facet
that should always be present -- it generates the requested facet on demand, if necessary. The latter will report that the
locale initially constructed by locale
()
has no facets.