std:: has_facet
|
헤더 파일에 정의됨
<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에서 패싯을 얻어옴
(함수 템플릿) |