std:: has_facet
|
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) |