locale Class
문화권별 정보를 일괄적으로 특정 지역화 된 환경 정의 패싯 집합을 캡슐화 하는 로캘 개체를 설명 하는 클래스입니다.
class locale {
public:
class facet;
class id;
typedef int category;
static const category none, collate, ctype, monetary,
numeric, time, messages, all;
locale();
explicit locale(
const char *_Locname
);
explicit locale(
const string& _Locname
);
locale(
const locale& _Loc,
const locale& _Other,
category cat
);
locale(
const locale& _Loc,
const char *_Locname,
category cat
);
locale(
const locale& _Loc,
const string& _Locname,
category _Cat
);
template<class Facet>
locale(
const locale& _Loc,
Facet *_Fac
);
template<class Facet>
locale combine(
const locale& _Loc
) const;
template<class Elem, class Tr, class Alloc>
bool operator()(
const basic_string<Elem, Tr, Alloc>& _Left,
const basic_string<Elem, Tr, Alloc>& _Right
) const;
string name() const;
bool operator== (
const locale& _Right
) const;
bool operator!=(
const locale& _Right
) const;
static locale global(
const locale& _Right
);
static const locale& classic();
};
설명
패싯 클래스에서 파생 된 클래스의 개체에 대 한 포인터입니다 면 가 폼의 공용 개체:
static locale::id id;
이러한 패싯에 개방형 집합을 정의할 수 있습니다.또한 임의 개수의 패싯 지정 locale 개체를 생성할 수 있습니다.
이 패싯의 미리 정의 된 그룹을 나타내는 로케일 범주 전통적 관리 표준 C 라이브러리에서 함수에 의해 setlocale.
범주 (LC_COLLATE)를 한 부씩 인쇄 패싯을 포함 됩니다:
collate<char>
collate<wchar_t>
범주 ctype (LC_CTYPE) 면을 다음과 같습니다.
ctype<char>
ctype<wchar_t>
codecvt<char, char, mbstate_t>
codecvt<wchar_t, char, mbstate_t>
codecvt<char16_t, char, mbstate_t>
codecvt<char32_t, char, mbstate_t>
면을 통화 범주 (LC_MONETARY)는 다음과 같습니다.
moneypunct<char, false>
moneypunct<wchar_t, false>
moneypunct<char, true>
moneypunct<wchar_t, true>
money_get<char, istreambuf_iterator<char> >
money_get<wchar_t, istreambuf_iterator<wchar_t> >
money_put<char, ostreambuf_iterator<char> >
money_put<wchar_t, ostreambuf_iterator<wchar_t> >
패싯을 범주 숫자 (LC_NUMERIC)는 다음과 같습니다.
num_get<char, istreambuf_iterator<char> >
num_get<wchar_t, istreambuf_iterator<wchar_t> >
num_put<char, ostreambuf_iterator<char> >
num_put<wchar_t, ostreambuf_iterator<wchar_t> >
numpunct<char>
numpunct<wchar_t>
패싯을 범주 시간 (LC_TIME)는 다음과 같습니다.
time_get<char, istreambuf_iterator<char> >
time_get<wchar_t, istreambuf_iterator<wchar_t> >
time_put<char, ostreambuf_iterator<char> >
time_put<wchar_t, ostreambuf_iterator<wchar_t> >
범주 메시지 (LC_MESSAGES 라는) 패싯을 포함 되어 있습니다.
messages<char>
messages<wchar_t>
(마지막 범주 Posix, 있지만 않는 C 표준에서 필요 합니다.)
텍스트 시퀀스에서 숫자 값의 변환을 제어 하기 일부 이러한 미리 정의 된 패싯 iostreams 클래스로 사용 됩니다.
개체 클래스 로캘의 또한 로캘 이름을 클래스의 개체로 저장 문자열.로캘 패싯 또는 locale 개체 생성에 부적합 한 로케일이 이름을 사용 하 여 클래스의 개체를 throw runtime_error.저장된 로캘 이름입니다 "*" locale 개체를 C 스타일 로케일에 정확 하 게 일치 하는지 확신할 수 없습니다 경우는 개체로 표시 합니다.그렇지 않으면 일치 하는 로캘 개체에 대 한 표준 C 라이브러리에서 로케일을 설정할 수 있습니다 _Loc를 호출 하 여 setlocale(LC_ALL, _Loc.이름().c_str()).
이 구현에서 정적 멤버 함수를 호출할 수도 있습니다.
static locale empty( );
패싯이 없습니다 된 로캘 개체를 생성.또한 투명 한 로케일입니다. 경우 템플릿 함수 has_facet 및 use_facet 요청한 패싯을 찾을 수 없습니다 투명 로캘에서 전역 로캘을 참조 한 다음, 투명 한 경우 기본 로케일.따라서 다음과 같이 작성할 수 있습니다.
cout.imbue(locale::empty( ));
후속 삽입 하려면 cout 의 전역 로캘 현재 상태에서 활용 한 됩니다.작성할 수도 있습니다.
locale loc(locale::empty( ), locale::classic( ),
locale::numeric);
cout.imbue(loc);
숫자 서식 설정 규칙에 후속 삽입에 대 한 cout 전역 로캘을 변경 날짜 및 금액과 삽입 규칙 제공도 C 로켈을에서 동일 하 게 유지 합니다.
생성자
로케일, 또는 사본의 로캘 어디 패싯 또는 범주 범주에서 다른 로캘 또는 패싯 바뀌었습니다 로캘 사본을 만듭니다. |
형식 정의
정수 형식 표준 패싯 제품군을 표시 하는 비트 마스크 값을 제공 합니다. |
멤버 함수
패싯 지정 된 로케일을 대상 로케일에 삽입합니다. |
|
저장 된 로캘 이름을 반환합니다. |
정적 함수
정적 멤버 함수가 C 로켈을 클래식 나타내는 locale 개체를 반환 합니다. |
|
프로그램에 대 한 로컬 기본값을 다시 설정합니다. |
연산자
같지 않음에 대해 두 개의 로케일을 테스트합니다. |
|
두 basic_string 개체를 비교합니다. |
|
두 로캘이 같은지 테스트합니다. |
클래스
로케일의 모든 측면에 대 한 기본 클래스로 사용 하는 클래스입니다. |
|
패싯 로캘에서 조회에 대 한 인덱스로 사용 하는 고유 패싯 식별 멤버 클래스를 제공 합니다. |
요구 사항
헤더: <locale>
네임 스페이스: std