std::has_facet
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <locale>
|
||
template< class Facet > bool has_facet( const locale& loc ); |
||
Проверяет, реализует ли локаль loc фасет Facet.
Параметры
| loc | — | запрашиваемый объект локали |
Возвращаемое значение
Возвращает true, если в локали loc был установлен фасет Facet и false в противном случае.
Исключения
| (нет) | (до C++11) |
| спецификация noexcept: noexcept |
(начиная с C++11) |
Пример
Запустить этот код
#include <iostream>
#include <locale>
// минимальный пользовательский фасет
struct myfacet : public std::locale::facet {
static std::locale::id id;
};
std::locale::id myfacet::id;
int main()
{
// loc является локалью "C" с добавленным в неё фасетом myfacet
std::locale loc(std::locale::classic(), new myfacet);
std::cout << std::boolalpha
<< "Может ли локаль loc сортировать char? "
<< std::has_facet<std::ctype<char>>(loc) << '\n'
<< "Может ли локаль loc сортировать char32_t? "
<< std::has_facet<std::ctype<char32_t>>(loc) << '\n'
<< "Реализует ли локаль loc фасет myfacet? "
<< std::has_facet<myfacet>(loc) << '\n';
}
Вывод:
Может ли локаль loc сортировать char? true
Может ли локаль loc сортировать char32_t? false
Реализует ли локаль loc фасет myfacet? true
Смотрите также
| набор полиморфных фасетов, инкапсулирующих культурные различия (класс) | |
| получает фасет из локали (шаблон функции) |