Share via


ctype<char> 클래스

클래스는 형식의 다양한 속성을 특성화하는 로캘 패싯 역할을 할 수 있는 개체를 설명하는 형식char에 대한 클래스 템플릿 ctype\<CharType> 의 명시적 특수화입니다char.

구문

template <>
class ctype<char>
: public ctype_base
{
public:
    typedef char _Elem;
    typedef _Elem char_type;
    bool is(
    mask _Maskval,
    _Elem _Ch) const;

    const _Elem* is(
    const _Elem* first,
    const _Elem* last,
    mask* dest) const;

    const _Elem* scan_is(
    mask _Maskval,
    const _Elem* first,
    const _Elem* last) const;

    const _Elem* scan_not(
    mask _Maskval,
    const _Elem* first,
    const _Elem* last) const;

    _Elem tolower(
    _Elem _Ch) const;

    const _Elem* tolower(
    _Elem* first,
    const _Elem* last) const;

    _Elem toupper(
    _Elem _Ch) const;

    const _Elem* toupper(
    _Elem* first,
    const _Elem* last) const;

    _Elem widen(
    char _Byte) const;

    const _Elem* widen(
    const char* first,
    const char* last,
    _Elem* dest) const;

    const _Elem* _Widen_s(
    const char* first,
    const char* last,
    _Elem* dest,
    size_t dest_size) const;

    _Elem narrow(
    _Elem _Ch,
    char _Dflt = '\0') const;

    const _Elem* narrow(
    const _Elem* first,
    const _Elem* last,
    char _Dflt,
    char* dest) const;

    const _Elem* _Narrow_s(
    const _Elem* first,
    const _Elem* last,
    char _Dflt,
    char* dest,
    size_t dest_size) const;

    static locale::id& id;
    explicit ctype(
    const mask* _Table = 0,
    bool _Deletetable = false,
    size_t _Refs = 0);

protected:
    virtual ~ctype();
//other protected members
};

설명

명시적 특수화는 다음과 같은 여러 가지 방법으로 클래스 템플릿과 다릅니다.

  • 클래스 ctype<char> 의 개체는 ctype 마스크 테이블의 첫 번째 요소, 형식의 UCHAR_MAX + 1개 요소의 배열에 대한 포인터를 저장합니다 ctype_base::mask. 또한 ctype<Elem> 개체가 제거될 때 배열을 삭제해야 하는지(사용operator delete[]) 여부를 나타내는 부울 개체도 저장합니다.

  • 유일한 공용 생성자를 사용하면 개체가 제거될 때 ctype<char> 배열을 삭제해야 하는 경우 true인 부울 개체와 del참조-개수 매개 변수 refs를 지정할 tab수 있습니다.

  • 보호된 멤버 함수 table 는 저장된 ctype 마스크 테이블을 반환합니다.

  • 정적 멤버 개체 table_size 는 ctype 마스크 테이블의 최소 요소 수를 지정합니다.

  • 보호된 정적 멤버 함수 classic_table("C" 로캘에 적합한 ctype 마스크 테이블을 반환합니다.

  • 보호된 가상 멤버 함수 do_is, do_scan_is 또는 do_scan_not이 없습니다. 해당 공용 멤버 함수는 동일한 작업을 자체적으로 수행합니다.

멤버 함수 do_narrowdo_widen은 변경되지 않은 요소를 복사합니다.

요구 사항

헤더:<로캘>

네임스페이스: std

참고 항목

facet 클래스
ctype_base 클래스
C++ 표준 라이브러리의 스레드 보안