Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ use_facet(3C++) — Sun WorkShop 5.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

use_facet(3C++)

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 templates on return type, then you need to use an alternate use_facet template. The alternate template takes an additional 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
 

Rogue Wave Software  —  Last change: 02 Apr 1998

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026