最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function
<regex>

# std::regex_traits::isctype(C++11)

    bool isctype(char_type c, char_class_type f) const;

## 概要

文字`c`がクラス`f`に属しているかを判定する。

## 戻り値

ビットマスクのクラス値`f`に含まれるいずれかのクラスに文字`c`が属していれば`true`、そうでなければ`false`を返す。

## 例

    #include <iostream>
    #include <regex>
    #include <string>

    int main()
    {
      std::regex_traits<char> traits;

      std::string class_name = "alnum"; // 正規表現中で[[:alnum:]]のように入力するクラス名

      // 文字'a'がアルファベットと数字のクラスに含まれているかを判定する
      std::regex_traits<char>::char_class_type class_value =
        traits.lookup_classname(class_name.begin(), class_name.end());
      if (traits.isctype('a', class_value)) {
        std::cout << "'a' is alpha-numeric class" << std::endl;
      }
      else {
        std::cout << "'a' is not alpha-numeric class" << std::endl;
      }
    }

### 出力

    'a' is alpha-numeric class

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.0 ✅, 3.1 ✅, 3.2 ✅, 3.3 ✅, 3.4 ✅, 3.5 ✅, 3.6 ✅
- GCC: 4.9.0 ✅, 4.9.1 ✅, 4.9.2 ✅, 5.0.0 ✅
- ICC: ??
- Visual C++: ??

## 参照

- LWG Issue 2018. [CD] `regex_traits::isctype` Returns clause is wrong
  - C++14から、戻り値の仕様文面が見直された。