名前空間
変種
操作

std::ctype<char>::is

From cppreference.com
< cpp‎ | locale‎ | ctype char
 
 
 
 
 
ヘッダー <locale> で定義
bool is( mask m, char c ) const;
(1)
const char* is( const char* low, const char* high, mask* vec ) const;
(2)
1) 指定された文字 `c` が、メンバ関数 `table()` が返す分類テーブルに従って、マスク `m` によって分類されるかどうかをチェックします。実質的に `table()[ (unsigned char)c ] & m` を計算します。
2) 文字配列 `[low, high)` 内の各文字について、メンバ関数 `table()` が返す分類テーブルから完全な分類マスクを読み込みます(すなわち、`table()[ (unsigned char)*p ]` を評価し、`vec` が指す配列の対応する要素に格納します)。

`(unsigned char)c >= std::ctype::table_size` の場合、`table()[ (unsigned char)c ]` の代わりに、実装定義の値が代入されます。これは `c` の値によって異なる場合があります。

目次

[edit] Parameters

c - 分類する文字
m - 単一の文字を分類するために使用するマスク
low - 分類する文字配列の最初の文字へのポインタ
high - 分類する文字配列の終端の次のポインタ
vec - 埋めるマスク配列の最初の要素へのポインタ

[edit] Return value

1) `c` が `table()` で `m` によって分類される場合は `true`、そうでない場合は `false`。
2) `high`

[edit] Notes

プライマリテンプレート `std::ctype` とは異なり、この特殊化は文字を分類する際に仮想関数呼び出しを行いません。動作をカスタマイズするには、派生クラスが基底クラスのコンストラクタにデフォルト以外の分類テーブルを提供できます。

[edit] Example

[edit] Defect reports

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 28 C++98 オーバーロード (2) は `vec` から `table()` へ値をコピーしていましたが、
これは意図された動作とは逆です。
修正済み

[edit] See also

[virtual]
文字または文字シーケンスを分類します
(std::ctype<CharT> の仮想 protected メンバ関数) [edit]
English 日本語 中文(简体) 中文(繁體)