Пространства имён
Варианты
Действия

std::has_facet

Материал из cppreference.com
< cpp‎ | locale
Определено в заголовочном файле <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

[править] Смотрите также

набор полиморфных фасетов, инкапсулирующих культурные различия
(класс) [править]
получает фасет по локали
(шаблон функции) [править]