構造体 テンプレート langedge::Ctype_Utilities< LOCALE >

文字種判定関数群クラス. [詳細]

#include <ctypeutil.hpp>

すべてのメンバ一覧

Public 型

enum  CharacterClassDef {
  CharClass_CNTRL = (1 << 0),
  CharClass_SPACE = (1 << 1),
  CharClass_BLANK = (1 << 2),
  CharClass_PRINT = (1 << 3),
  CharClass_GRAPH = (1 << 4),
  CharClass_PUNCT = (1 << 5),
  CharClass_DIGIT = (1 << 6),
  CharClass_UPPER = (1 << 7),
  CharClass_LOWER = (1 << 8),
  CharClass_ALPHA = (CharClass_UPPER + CharClass_LOWER),
  CharClass_ALNUM = (CharClass_DIGIT + CharClass_ALPHA),
  CharClass_KANA = (1 << 9),
  CharClass_SJIS1 = (1 << 10),
  CharClass_SJIS2 = (1 << 11),
  CharClass_SJIS2_PROPER = (1 << 12),
  CharClass_EUC = (1 << 13)
}
 文字種定義 [詳細]
enum  CharClass_ShortName {
  _CC_CTL = CharClass_CNTRL,
  _CC_SPC = CharClass_SPACE + CharClass_CNTRL,
  _CC_TAB = CharClass_SPACE + CharClass_BLANK + CharClass_CNTRL,
  _CC_WSP = CharClass_SPACE + CharClass_BLANK + CharClass_PRINT,
  _CC_PUN = CharClass_PUNCT + CharClass_PRINT + CharClass_GRAPH,
  _CC_PN2 = _CC_PUN + CharClass_SJIS2,
  _CC_DIG = CharClass_DIGIT + CharClass_PRINT + CharClass_GRAPH,
  _CC_UP2 = CharClass_UPPER + CharClass_PRINT + CharClass_GRAPH + CharClass_SJIS2,
  _CC_LO2 = CharClass_LOWER + CharClass_PRINT + CharClass_GRAPH + CharClass_SJIS2,
  _CC_SKN = CharClass_KANA + CharClass_SJIS2,
  _CC_SKE = _CC_SKN + CharClass_EUC,
  _CC_S2P = CharClass_SJIS2 + CharClass_SJIS2_PROPER,
  _CC_SJP = CharClass_SJIS1 + _CC_S2P,
  _CC_SJE = _CC_SJP + CharClass_EUC,
  _CC_EUC = CharClass_EUC
}
 文字種の短縮名を定義 [詳細]

Static Public メソッド

static bool is8bitChar (int ch)
 8ビット文字か (0 〜 255 の範囲か)
static int isBlank (int ch)
 空白文字か (ブランクとタブ)
static int isCntrl (int ch)
 制御文字か
static int isGraph (int ch)
 図形文字か
static int isPrint (int ch)
 印字可能文字か
static int isPunct (int ch)
 区切り文字か
static int isSpace (int ch)
 スペース文字か (改行等を含む)
static int isAlnum (int ch)
 英数字か
static int isAlpha (int ch)
 英文字か
static int isDigit (int ch)
 数字か
static int isLower (int ch)
 英小文字か
static int isUpper (int ch)
 英大文字か
static int isKana (int ch)
 半角カナ文字か
static int isSJIS1 (int ch)
 sjis 文字の第1バイト目か
static int isSJIS2 (int ch)
 sjis 文字の第2バイト目か
static int isProperSJIS2 (int ch)
 sjis 文字の第1バイトではないことが保証されているときに、 第2バイト目であることが確実にわかる文字
static int isWordCharSJIS (int ch)
 sjis 文字の第1バイト目または英数字か
static int isEUC1 (int ch)
 euc 文字の第1バイト目か
static int isEUC2 (int ch)
 euc 文字の第2バイト目か
static int isProperEUC2 (int ch)
 euc 文字の第1バイトではないことが保証されているときに、 第2バイト目であることが確実にわかる文字
static int isWordCharEUC (int ch)
 euc 文字の第1バイト目または英数字か
static int toUpper (int x)
 英大文字に変換
static int toLower (int x)
 英小文字に変換

Static Public 変数

static unsigned short CharClassTable []
 英数字以外の文字種


説明

template<int LOCALE>
struct langedge::Ctype_Utilities< LOCALE >

文字種判定関数群クラス.

std::isalpah() などは、呼び出されるたびに、毎回、オブジェクトを生成しているらしく、 非常に遅い。使うべきではない。 (参考: http://www.fides.dti.ne.jp/~oka-t/cpplab-ctype.html)
当クラスは、std::isalpha() などの高速な代替関数を提供する。

テンプレート引数の LOCALE は、いまのところダミー。
0 を指定して特殊化した Ctype_Utilities<0> を使う。
これは、 langedge::CtypeUtil と typedef されている。

使用例:

     bool myIsAlpha( int ch ) {
         return langedge::CtypeUtil::isAlpha( ch );
     }

当クラステンプレートは、static 変数として文字種テーブル CharClassTable[] の定義を含んでいるが、 テンプレートにしておくと、複数のファイルからインクルードされたとしても、 プログラム中で1か所にまとめられることが保証される。


列挙型

template<int LOCALE>
enum langedge::Ctype_Utilities::CharacterClassDef
 

文字種定義

列挙型の値:
CharClass_CNTRL 
CharClass_SPACE 
CharClass_BLANK 
CharClass_PRINT 
CharClass_GRAPH 
CharClass_PUNCT 
CharClass_DIGIT 
CharClass_UPPER 
CharClass_LOWER 
CharClass_ALPHA 
CharClass_ALNUM 
CharClass_KANA 
CharClass_SJIS1 
CharClass_SJIS2 
CharClass_SJIS2_PROPER 
CharClass_EUC 

template<int LOCALE>
enum langedge::Ctype_Utilities::CharClass_ShortName
 

文字種の短縮名を定義

列挙型の値:
_CC_CTL 
_CC_SPC 
_CC_TAB 
_CC_WSP 
_CC_PUN 
_CC_PN2 
_CC_DIG 
_CC_UP2 
_CC_LO2 
_CC_SKN 
_CC_SKE 
_CC_S2P 
_CC_SJP 
_CC_SJE 
_CC_EUC 


関数

template<int LOCALE>
static bool langedge::Ctype_Utilities< LOCALE >::is8bitChar int  ch  )  [inline, static]
 

8ビット文字か (0 〜 255 の範囲か)

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isBlank int  ch  )  [inline, static]
 

空白文字か (ブランクとタブ)

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isCntrl int  ch  )  [inline, static]
 

制御文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isGraph int  ch  )  [inline, static]
 

図形文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isPrint int  ch  )  [inline, static]
 

印字可能文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isPunct int  ch  )  [inline, static]
 

区切り文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isSpace int  ch  )  [inline, static]
 

スペース文字か (改行等を含む)

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isAlnum int  ch  )  [inline, static]
 

英数字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isAlpha int  ch  )  [inline, static]
 

英文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isDigit int  ch  )  [inline, static]
 

数字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isLower int  ch  )  [inline, static]
 

英小文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isUpper int  ch  )  [inline, static]
 

英大文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isKana int  ch  )  [inline, static]
 

半角カナ文字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isSJIS1 int  ch  )  [inline, static]
 

sjis 文字の第1バイト目か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isSJIS2 int  ch  )  [inline, static]
 

sjis 文字の第2バイト目か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isProperSJIS2 int  ch  )  [inline, static]
 

sjis 文字の第1バイトではないことが保証されているときに、 第2バイト目であることが確実にわかる文字

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isWordCharSJIS int  ch  )  [inline, static]
 

sjis 文字の第1バイト目または英数字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isEUC1 int  ch  )  [inline, static]
 

euc 文字の第1バイト目か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isEUC2 int  ch  )  [inline, static]
 

euc 文字の第2バイト目か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isProperEUC2 int  ch  )  [inline, static]
 

euc 文字の第1バイトではないことが保証されているときに、 第2バイト目であることが確実にわかる文字

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::isWordCharEUC int  ch  )  [inline, static]
 

euc 文字の第1バイト目または英数字か

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::toUpper int  x  )  [inline, static]
 

英大文字に変換

template<int LOCALE>
static int langedge::Ctype_Utilities< LOCALE >::toLower int  x  )  [inline, static]
 

英小文字に変換


変数

template<int LOCALE>
unsigned short langedge::Ctype_Utilities< LOCALE >::CharClassTable [static]
 

英数字以外の文字種


この構造体の説明は次のファイルから生成されました:
LangEdge ライブラリに対してFri May 6 22:43:02 2005に生成されました。  doxygen 1.4.2