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_base::mask
の UCHAR_MAX + 1 要素の配列である ctype マスク テーブルの最初の要素を示すポインターを格納します。 ctype<Elem> オブジェクトが破棄されるとき、(operator delete[]
を利用して) 配列を削除するかどうかを示すブール値も格納します。その唯一のパブリック コンストラクターでは、
tab
、ctype マスク テーブル、del
、ctype<char>
オブジェクトが破棄されるときに配列を削除する場合に true となるブール値オブジェクト、参照数パラメーター参照を指定できます。保護されているメンバー関数
table
は、格納されている ctype マスク テーブルを返します。静的メンバー オブジェクト
table_size
は、ctype マスク テーブルの最小要素数を指定します。保護されている静的メンバー関数
classic_table
( は、"C" ロケールに適切な ctype マスク テーブルを返します。保護されている仮想メンバー関数 do_is、do_scan_is、do_scan_not はありません。 それに対応するパブリック メンバー関数が同等の操作を実行します。
メンバー関数の do_narrow と do_widen は、要素を変更せずにコピーします。
要件
ヘッダー: <locale>
名前空間: std