mark_tag 構造体

struct mark_tag

静的正規表現で名前付き捕捉を作成するのに使用する、部分マッチのプレースホルダ型。

概要

// ヘッダ:<boost/xpressive/regex_primitives.hpp>


struct mark_tag {
  // 構築、コピー、解体
  mark_tag(int);

  // 非公開静的メンバ関数
  static unspecified make_tag(int);
};

説明

mark_tag は部分マッチのグローバルなプレースホルダ s0s1 、…の型である。mark_tag を使用すると、より意味のある名前で部分マッチプレースホルダを作成できる。動的正規表現における「名前付き捕捉」機能とおおよそ等価である。

名前付き部分マッチプレースホルダは、一意な整数で初期化して作成する。この整数はプレースホルダを使用する正規表現内で一意でなければならない。静的正規表現内でこれに部分式を代入して部分マッチを作成するか、すでに作成した部分マッチを後方参照できる。

mark_tag number(1); // number は s1 と等価
// 数字、続いて空白、再び同じ数字にマッチ
sregex rx = (number = +_d) >> ' ' >> number;

regex_matchregex_search が成功した後は、部分マッチのプレースホルダを match_results<> オブジェクトの添字にして、対応する部分マッチを得る。

mark_tag 構築、コピー、解体の公開演算

mark_tag(int mark_nbr)

mark_tag プレースホルダを初期化する。

パラメータ

mark_nbr -- この mark_tag を使用する静的正規表現内でこの mark_tag を一意に識別する整数。

要件

mark_nbr > 0

mark_tag 非公開静的メンバ関数

static unspecified make_tag(int mark_nbr)