Library /sys$common/syshlp/helplib.hlb
CXXLSTD, locales, use_facet

 *Conan The Librarian

 			   Standard C++	Library
 		 Copyright 1996, Rogue Wave Software, Inc.

 NAME

   use_facet - 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 be
   explicitly providing the template parameter (See the example below).
   If that facet is	not present then use_facet throws
   bad_cast.  Otherwise, the reference will remain	valid for as
   long as any copy of   the locale exists.

   Note that if your compiler cannot overload function templates	on
   return type then you'll need	to use an alternate use_facet
   template.	 The alternate template	takes an additional
   argument that's 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
  Close     Help