Namespaces
Variants

std:: has_facet

From cppreference.net
Definido en el encabezado <locale>
template < class Facet >
bool has_facet ( const locale & loc ) throw ( ) ;
(hasta C++11)
template < class Facet >
bool has_facet ( const locale & loc ) noexcept ;
(desde C++11)

Comprueba si la configuración regional loc implementa la faceta Facet .

El programa está mal formado si Facet no es un facet o si es un facet calificado como volatile.

Contenidos

Parámetros

loc - el objeto de configuración regional a consultar

Valor de retorno

Devuelve true si la faceta Facet fue instalada en la configuración regional loc , false en caso contrario.

Notas

std::has_facet debe devolver true para todas las configuraciones regionales loc si Facet es uno de los facetas estándar proporcionados aquí .

Ejemplo

#include <iostream>
#include <locale>
// minimal custom facet
struct myfacet : public std::locale::facet
{
    static std::locale::id id;
};
std::locale::id myfacet::id;
int main()
{
    // loc is a "C" locale with myfacet added
    std::locale loc(std::locale::classic(), new myfacet);
    std::cout << std::boolalpha
              << "Can loc classify chars? "
              << std::has_facet<std::ctype<char>>(loc) << '\n'
              << "Can loc classify char32_t? "
              << std::has_facet<std::ctype<char32_t>>(loc) << '\n'
              << "Does loc implement myfacet? "
              << std::has_facet<myfacet>(loc) << '\n';
}

Salida:

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

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Se aplica a Comportamiento publicado Comportamiento correcto
LWG 436 C++98 no estaba claro si Facet puede tener calificadores cv puede tener calificador const, pero no volatile

Véase también

conjunto de facetas polimórficas que encapsulan diferencias culturales
(clase)
obtiene una faceta de una configuración regional
(plantilla de función)