std::has_facet - cppreference.com (original) (raw)

| Defined in header | | | | ----------------------------------------------------------------------- | | ------------- | | template< class Facet > bool has_facet( const locale& loc ) throw(); | | (until C++11) | | template< class Facet > bool has_facet( const locale& loc ) noexcept; | | (since C++11) |

Checks if the locale loc implements the facet Facet.

The program is ill-formed if Facet is not a facet or it is a volatile-qualified facet.

[edit] Parameters

loc - the locale object to query

[edit] Return value

Returns true if the facet Facet was installed in the locale loc, false otherwise.

[edit] Notes

std::has_facet must return true for all locales loc if Facet is one of the standard facets given here.

[edit] Example

Output:

Can loc classify chars? true Can loc classify char32_t? false Does loc implement myfacet? true

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 436 C++98 it was unclear whether Facet can be cv-qualified it can be const-qualified, but not volatile-qualified

[edit] See also

| | set of polymorphic facets that encapsulate cultural differences (class) [edit] | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | obtains a facet from a locale (function template) [edit] |