Standard C++ Library
Copyright 1998, Rogue Wave Software, Inc.
NAME
use_facet
- A template function used to obtain a facet.
SYNOPSIS
#include <locale>
template <class Facet> const Facet& use_facet(const
locale&);
DESCRIPTION
use_facet returns a reference to the corresponding facet
contained in the locale argument. You specify the facet type
by explicitly including the template parameter (see the
example below). If that facet is not present, then use_facet
throws runtime_error. Otherwise, the reference remains valid
for as long as any copy of the locale exists.
Note that if your compiler cannot overload function tem-
plates on return type, then you need to use an alternate
use_facet template. The alternate template takes an addi-
tional argument that is a pointer to the type of facet you
want to extract from the locale. The declaration looks like
this:
template <class Facet>
const Facet& use_facet(const locale&, Facet*);
The example below shows the use of both variations of
use_facet.
EXAMPLE
//
// usefacet.cpp
//
#include <iostream>
int main ()
{
using namespace std;
locale loc;
// Get a ctype facet
const ctype<char>& ct =
#ifndef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
use_facet<ctype<char> >(loc);
#else
use_facet(loc,(ctype<char>*)0);
#endif
cout << 'a' << ct.toupper('c') << endl;
return 0;
}
SEE ALSO
locale, facets, has_facet