Namespaces
Variants

std:: has_facet

From cppreference.net
헤더 파일에 정의됨 <locale>
template < class Facet >
bool has_facet ( const locale & loc ) throw ( ) ;
(C++11 이전)
template < class Facet >
bool has_facet ( const locale & loc ) noexcept ;
(C++11 이후)

로캘이 loc 패싯 Facet 을 구현하는지 확인합니다.

Facet이 facet 가 아니거나 volatile 한정된 facet인 경우 프로그램의 형식이 올바르지 않습니다.

목차

매개변수

loc - 쿼리할 로케일 객체

반환값

패싯 Facet 이 로케일 loc 에 설치된 경우 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

참고 사항

std::has_facet Facet 여기 에 주어진 표준 패싯 중 하나인 경우, 모든 로케일 loc 에 대해 true 를 반환해야 합니다.

예제

#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';
}

출력:

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

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 436 C++98 Facet 이 cv-qualified 될 수 있는지 불명확했음 const-qualified는 가능하지만 volatile-qualified는 불가능

참고 항목

문화적 차이를 캡슐화하는 다형적 패싯들의 집합
(클래스)
locale에서 패싯을 얻어옴
(함수 템플릿)