ctype<char>
類別
類別是類別樣板 ctype\<CharType>
類型的 char
明確特製化,描述可作為地區設定 Facet 的物件,以描述類型 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
。 它也會儲存 Boolean 物件,指出當 ctype<Elem> 物件終結時,是否應該刪除數位(使用operator delete[]
)。唯一的公用建構函式可讓您指定
tab
、ctype mask 數據表和del
,如果對象終結時ctype<char>
應刪除陣列,以及 reference-count 參數 refs,則為 true 的布爾值物件。受保護的成員函
table
式會傳回儲存的 ctype 遮罩數據表。靜態成員物件
table_size
會指定 ctype mask 數據表中的項目數目下限。受保護的靜態成員函
classic_table
式 (傳回適合 “C”地區設定的 ctype 遮罩數據表。系統並沒有提供 do_is、do_scan_is 或 do_scan_not 這幾個受保護的虛擬成員函式。 對應的公用成員函式會自行執行對等作業。
成員函式 do_narrow 和 do_widen 會複製不變的元素。
需求
Header:<locale>
命名空間:std