Skip to content. Skip to navigation

ICTP Portal

Sections
You are here: Home Manuals on-line PGI Compiler pgC_lib use_facet
Personal tools
Document Actions

use_facet



Click on the banner to return to the class reference home page.

use_facet


Locale Function

Summary

Template function used to obtain a facet.

Data Type and Member Function Indexes
(exclusive of constructors and destructors)

None

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


©Copyright 1996, Rogue Wave Software, Inc.


Powered by Plone This site conforms to the following standards: