名前空間
変種
操作

C++ 名前付き要件: RegexTraits (C++11 以降)

From cppreference.com
 
 
C++ 名前付き要件
 

RegexTraits は、std::basic_regex のテンプレート型パラメータとして使用される際に、指定された文字型に必要な操作を抽象化するトレイトクラスです。

[編集] 要件

以下を考えます。

  • CharT、文字型
  • X、型 CharT に対する RegexTraits
  • u、型 X のオブジェクト
  • v、型 const X のオブジェクト
  • p、型 const CharT* の値
  • I1, I2、入力イテレータ
  • F1, F2、前方イテレータ
  • c、型 const CharT の値
  • s、型 X::string_type のオブジェクト
  • cs、型 const X::string_type のオブジェクト
  • b、型 bool の値
  • I、型 int の値
  • cl、型 X::char_class_type のオブジェクト
  • loc、型 X::locale_type のオブジェクト


戻り値の型 意味
X::char_type CharT 文字型を参照するために使用される。
X::string_type std::basic_string<CharT>
X::locale_type トレイトクラスによって使用されるロケールを表す、CopyConstructible な型。
X::char_class_type 特定の文字分類を表す、BitmaskType 型。
X::length(p) std::size_t 戻り値:p[i] == 0 となる最小の i。計算量は i に対して線形。
v.translate(c) X::char_type 戻り値:任意の文字 d に対して、c と等価であるとみなされる場合、v.translate(c) == v.translate(d) となるような文字。
v.translate_nocase(c) X::char_type 戻り値:任意の文字 C に対して、大文字小文字を区別せずに c と等価であるとみなされる場合、v.translate_nocase(c) == v.translate_nocase(C) となるような文字。
v.transform(F1, F2) X::string_type 戻り値:イテレータ範囲 [F1, F2) によって指定される文字シーケンスのソートキー。文字シーケンス [G1, G2) が文字シーケンス [H1, H2) より前にソートされる場合、v.transform(G1, G2) < v.transform(H1, H2) となる。
v.transform_primary(F1, F2) X::string_type 戻り値:イテレータ範囲 [F1, F2) によって指定される文字シーケンスのソートキー。文字シーケンス [G1, G2) が文字シーケンス [H1, H2) より前に大文字小文字を区別せずにソートされる場合、v.transform_primary(G1, G2) < v.transform_primary(H1, H2) となる。
v.lookup_collatename(F1, F2) X::string_type 戻り値
  • 文字シーケンスが有効な照合要素でない場合は空文字列。
  • それ以外の場合は、イテレータ範囲 [F1, F2) によって指定される文字シーケンスからなる照合要素を表す文字シーケンス。
v.lookup_classname(F1, F2, b) X::char_class_type
  • イテレータ範囲 [F1, F2) によって指定される文字シーケンスを、後で isctype に渡すことができる BitmaskType の値に変換する。
  • lookup_classname から返される値はビット単位で OR 演算することができる。結果の値は、対応する文字クラスのいずれかへの所属を表す。
  • もし b が true ならば、返されるビットマスクは大文字小文字を区別せずに文字を照合するのに適している。
  • X によって認識される文字クラスの名前でない場合、0 を返す。
  • 返される値は、シーケンス内の文字の大文字小文字に関係なく独立している必要がある。
v.isctype(c, cl) bool 戻り値:ccl によって指定される文字クラスのいずれかのメンバーであるかどうか。
v.value(c, I) int 戻り値
  • 文字 c が基数 I の有効な数字である場合、基数 I における数字 c によって表される値。
  • それ以外の場合は -1
u.imbue(loc) X::locale_type
  • u にロケール loc を注入する。
  • 戻り値:もしあれば、u によって使用されていた以前のロケール。
v.getloc() X::locale_type 戻り値:もしあれば、v によって使用されていた以前のロケール。


[編集] 標準ライブラリ

RegexTraits は、以下の標準ライブラリクラスによって満たされます。

template<> class regex_traits<char>;
template<> class regex_traits<wchar_t>;
(C++11以降)
(C++11以降)
English 日本語 中文(简体) 中文(繁體)